如何使多个实例同时执行相同的作业而不是同时执行

时间:2010-07-07 11:18:16

标签: quartz-scheduler quartz.net

我有4个Quartz Server实例。所有实例都指向一个ADO JobStore。我想做的就是让每个Quartz实例同时执行相同的工作。

我希望它足够清楚。

2 个答案:

答案 0 :(得分:1)

不支持开箱即用。每当触发器触发时,它只能由一个实例使用。您可以触发4个触发器,但不能保证作业不会在一个实例上运行两次。

如果您希望每个实例触发一次作业,那么您将需要设置4个单独的作业库。

答案 1 :(得分:0)

我所做的(在Quartz.NET 2.4.1中)是我有多个相同的调度程序实例,它们只在调度程序实例名称(quartz.scheduler.instanceName)中有所不同。他们注册相同的工作和触发器。由于调度程序实例名称不同,作业和触发器在作业存储中重复(调度程序名称是JobStoreTX的每个表中主键的一部分)。这导致逻辑上相同的触发器同时在所有调度程序实例上触发。但它们实际上是单独的触发器,因此每个触发器都会单独处理失火等。