В 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
,