Quartz.NET实例处理

时间:2010-03-31 07:58:52

标签: quartz-scheduler quartz.net

我有2个实例在2个不同的Windows服务中实现2个不同的实例ID:

//windows service 1 instance 1
properties["quartz.scheduler.instanceName"] = "instanceName1";
properties["quartz.scheduler.instanceId"] = "instanceID1";

//windows service 2 instance 2
properties["quartz.scheduler.instanceName"] = "instanceName2";
properties["quartz.scheduler.instanceId"] = "instanceID2";

在ADOJobstore中,我可以看到有两个实例。

但是,当我在instance1中安排一个简单的作业时,它会在instance2中被触发(反之亦然)。通过查看在jobstore中创建的记录,可以使用预期的instanceID正确标记计划的作业。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

这是预期的行为。如果有2个实例指向同一个商店,则任一实例都可以从中提取作业。基本上,您正在运行一组调度程序和AFAIK,无法将作业限制为在一台特定服务器上运行。如果您希望在一台特定服务器上运行作业,则必须设置2个不同的作业存储。