1

我有 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。知道为什么会这样吗?

4

1 回答 1

3

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

于 2010-03-31T13:09:22.663 回答