我有两个节点具有相同的Quartz调度程序。 JobStore具有唯一的触发器,每5秒执行一次,处理作业需要一秒钟。
当我的一个节点启动时,一切正常。当第二个节点初始化其Quartz调度程序时,它将ACQUIRED(通过第一个节点)触发器的状态更改为WAITING,然后“拾取它”以执行(状态然后再次更改为ACQUIRED)。
然后作业由两个节点同时执行,然后唯一的节点继续执行作业(这是预期的行为)。 如何实现整个集群的适当优势?感谢。
答案 0 :(得分:0)
通过为属性“ org.quartz.scheduler.instanceId ”指定不同的值来解决问题(也可以使用值“AUTO”)。
它具有默认的“NON_CLUSTERED”值,因此在初始化第二个节点后,Quartz认为它正在重新初始化故障节点,因此它已释放与该节点关联的所有作业以重新获取它们。