在Quartz 1.8.6中,有没有像MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT CronTrigger这样的选项

时间:2017-06-16 21:05:00

标签: quartz-scheduler misfire-instruction

我们在我们的应用程序中使用Quartz 1.8.6。我们正在使用CronTriggers进行每小时和每晚的工作。我们想设置一些事情,如果发生熄火,我们想跳过这个工作,直到下一个cron时间到来。

对于简单的工作,看起来你可以做一个

nightlyTrigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT);

但是,这似乎不适用于CronTrigger。在这种情况下使用的Misfire指令是什么?

1 个答案:

答案 0 :(得分:1)

您想使用 CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING

SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT告诉Quartz,在一次或多次失火时,它必须:

  • 重新安排触发器在下一个预定日期开火(不开火,即忽略,错过执行)。
  • 此外,设置“重复剩余”计数器,好像所有错过的执行都已正确运行(不考虑错过的运行)。

所以基本上这个失火指令告诉Quartz什么都不做,微笑并继续前进,就像什么也没发生过一样。失火指令的KEEP CALM。

Cron触发器的等效指令更恰当地命名为:CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING