1

我们在我们的应用程序中使用 Quartz 1.8.6。我们将 CronTriggers 用于每小时和每晚的工作。我们想设置这样的东西,如果出现故障,我们希望跳过这项工作,直到下一个 cron 时间到来。

对于简单的工作,您似乎可以做一个

nightlyTrigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT);

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

4

1 回答 1

1

你想用CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING.

SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT告诉 Quartz,一旦发生一次或多次失火,它必须:

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

所以基本上这个失火指令告诉石英什么都不做,微笑并继续前进,就像什么都没发生过一样。失火指令的保持冷静。

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

于 2017-06-19T08:01:03.843 回答