问题描述
想象一下,我有一个微服务来安排提醒。它将扩展到该微服务的3个实例,并且如果需要的话,可以扩展到更多实例。它们共享2个端点-> POST(SheduleReminder)和POST(UpdateSheduleReminder)
第一个请求将在实例A(Id = 1)上进行调度,第二个请求在B(Id = 2)上进行,第三个请求在C(Id = 3)上进行。想象一下它与负载均衡器一起工作。
现在,如果我想用ID = 2更新作业,如何在内存中计划/知道该作业计划在微服务的哪个实例上?
这是一个问题,我需要以某种方式管理作业在什么情况下运行?
谢谢!
解决方法
将评论移至答案。
1通过易失的RAMJobStore,无法实现对石英实例的集群,因为它们存储了运行石英调度程序的实例的本地数据。如果实例失败,作业数据/细节将丢失。
2要启用石英实例的群集,应使用JDBCStore或等效的.NET。此JobStore将数据持久存储在数据库中。只要所有石英实例都共享相同的数据库群集即可。