Quartz作业总是在同一节点

时间:2017-05-10 21:03:09

标签: java spring-boot quartz-scheduler quartz

我有石英配置在集群中工作我的简单石英配置

org.quartz.scheduler.instanceName =作业调度

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并坚持使用。如何才能在节点之间平均分配执行?

由于

1 个答案:

答案 0 :(得分:0)

This可能会有所帮助。如果您的群集不是非常繁忙,那么一个节点可能最终会完成所有工作,因为每次完成一项工作时,它都会去寻找更多工作,并找到刚刚完成的下一次工作。群集中的另一个节点将定期轮询工作,但不太可能找到任何需要执行的操作。

您是否有理由希望在群集中更均匀地分配工作?是不是没有完成?如果一个节点接受的工作量超过其完成的能力,您可以考虑关闭threadCount