在许多情况下访问 Quartz 中的计划作业
Access to the scheduled jobs in Quartz when on many instances
假设我有一个微服务来安排提醒。它将扩展到该微服务的 3 个实例,如果需要,还可以扩展到更多。他们共享 2 个端点 -> POST(SheduleReminder) 和 POST(UpdateSheduleReminder)
第一个请求将安排在实例 A (Id = 1) 上,第二个请求将安排在 B (Id = 2) 上,第三个将安排在 C (Id = 3) 上。想象一下它与负载均衡器一起工作。
现在,如果我想更新 Id = 2 的作业,我如何 pick/know 在我的微服务的哪个实例上调度内存中的作业?
这是个问题吗,我需要以某种方式管理工作 运行?
谢谢!
将评论移至答案。
1 通过易失性的 RAMJobStore,不可能实现石英实例的集群,因为它们将数据存储在石英调度程序 running.In 实例失败的实例本地,作业 data/details 将迷路了。
2 要启用 quartz 实例的集群,JDBCStore 或 .NET 等价物应该是 used.This JobStore 将数据保存在 database.As 中,只要所有 quartz 实例都共享同一个数据库聚类是可能的。
参考这些链接
Quartz Clustering documentation for .NET
假设我有一个微服务来安排提醒。它将扩展到该微服务的 3 个实例,如果需要,还可以扩展到更多。他们共享 2 个端点 -> POST(SheduleReminder) 和 POST(UpdateSheduleReminder)
第一个请求将安排在实例 A (Id = 1) 上,第二个请求将安排在 B (Id = 2) 上,第三个将安排在 C (Id = 3) 上。想象一下它与负载均衡器一起工作。
现在,如果我想更新 Id = 2 的作业,我如何 pick/know 在我的微服务的哪个实例上调度内存中的作业?
这是个问题吗,我需要以某种方式管理工作 运行?
谢谢!
将评论移至答案。
1 通过易失性的 RAMJobStore,不可能实现石英实例的集群,因为它们将数据存储在石英调度程序 running.In 实例失败的实例本地,作业 data/details 将迷路了。
2 要启用 quartz 实例的集群,JDBCStore 或 .NET 等价物应该是 used.This JobStore 将数据保存在 database.As 中,只要所有 quartz 实例都共享同一个数据库聚类是可能的。
参考这些链接 Quartz Clustering documentation for .NET