В Quartz 1.8.6 есть такая опция, как MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT CronTrigger

Мы используем Quartz 1.8.6 в нашем приложении. Мы используем CronTriggers для часовых и ночных работ. Мы хотели бы настроить все так, чтобы в случае пропуска зажигания мы хотели бы пропустить задание, пока не наступит следующий период времени.

Для простых работ, кажется, вы можете сделать

nightlyTrigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT);

Однако, похоже, что это не работает с CronTrigger. Какую инструкцию по пропускам зажигания использовать в этом случае?

1 ответ

Решение

Вы хотите использовать CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING,

SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT сообщает Кварцу, что после одного или нескольких осечек он должен:

  • перенесите триггер на следующий запланированный день (не стреляя, т.е. игнорируя пропущенные казни).
  • Кроме того, установите счетчик "Количество повторов осталось", как если бы все пропущенные выполнения выполнялись корректно (без учета пропущенных запусков).

Так что в основном эта инструкция о пропусках зажигания говорит Кварцу ничего не делать, улыбаться и продолжать идти, как будто ничего не произошло. ПРОДОЛЖАЙТЕ СПОКОЙСТВО о пропусках зажигания.

Эквивалентная инструкция для триггеров Cron имеет гораздо более точное название: CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING,

Другие вопросы по тегам