首页 > 解决方案 > 除了服务器重启之外,是否存在 Quartz 使用“RECOVERING_JOBS.recover_”触发器触发作业的情况?

问题描述

我有一个运行 Quartz Scheduler (v1.8.6) 的 2 台服务器集群。它们共享相同的元数据数据库,并且所有作业的恢复标志都为 true。时钟是同步的(根据我们的客户)。

一些属性:

org.quartz.jobStore.misfireThreshold=60000
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval=5000

我遇到的情况是“RECOVERING_JOBS.recover_xxx”触发器由于失火而触发作业并且该作业已经在运行,因此我最终在同一台服务器上运行了同一作业的 2 个实例。

154806091 [QuartzScheduler_xxx-xxx_MisfireHandler] ERROR 2021-03-21T04:18:25.592 com.my.site.LoggingTriggerHistoryPlugin [] - Trigger [RECOVERING_JOBS.recover_xxx011616145523933_1616300301235] misfired job [xxx_344] at: 2021/03/21 04:18:25. Should have fired at: 2021/03/21 04:00:00.  

据我在日志文件中看到的,服务器没有重新启动,所以我不知道为什么有一个触发该作业的 RECOVERING 触发器(然后,失火)。

谢谢

标签: triggersquartz-schedulerquartzmisfire-instruction

解决方案


推荐阅读