1

我已将石英配置为在集群中工作,这是我的简单石英配置

org.quartz.scheduler.instanceName=jobs-scheduler

org.quartz.scheduler.instanceId=AUTO
org.quartz.threadPool.threadCount=5
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties=true
org.quartz.jobStore.misfireThreshold=10000
org.quartz.jobStore.tablePrefix=QRTZ_

org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval=20000

我有两个节点在执行我的作业,但是当我安排某个任务每秒运行一次时,我可以看到它仅在 node1 上执行。如果我在 node1 上暂停调度程序,则即使 node1 再次联机,任务也会移动到 node2 并坚持下去。我怎样才能使节点之间的执行均匀偏离?

谢谢

4

1 回答 1

0

可能会有所帮助。如果你的集群不是很忙,一个节点可能最终会完成所有的工作,因为每次它完成一项工作时,它都会去寻找更多的工作,并找到它刚刚完成的下一次运行的工作。集群上的另一个节点会定期轮询工作,但不太可能找到需要做的任何事情。

您是否有理由希望在集群中更均匀地分配工作?有什么事情没有完成吗?如果一个节点接受的工作超过了它能够完成的工作,您可能会考虑threadCount拒绝。

于 2017-05-10T22:17:00.743 回答