Да. Вам просто нужно сказать Quartz, что делать job misfires:
Другим важным свойством триггера является его «инструкция осечка». Пропуски пропуска возникают, если постоянный триггер «пропускает» время срабатывания из-за отключения планировщика или из-за отсутствия доступных потоков в пуле потоков Quartz для выполнения задания. Различные типы триггеров имеют разные инструкции о пропусках. По умолчанию они используют команду «умная политика», которая имеет динамическое поведение, основанное на типе и конфигурации триггера. Когда планировщик запускается, он ищет любые постоянные триггеры, которые пропущены, и затем обновляет каждый из них на основе их индивидуально настроенных инструкций о пропусках. Когда вы начинаете использовать Quartz в своих собственных проектах, вы должны ознакомиться с инструкциями по пропускам, которые определены в данных типах триггеров, и объяснены в их JavaDoc.
Специальная инструкция о пропуске зажигания зависит от используемого вами типа Trigger
. Для повседневной работы Это может быть примерно так:
trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(dailyAtHourAndMinute(0,0)
.withMisfireHandlingInstructionDoNothing()) // set misfire instruction
.build();
Но опять же, это зависит от типа триггера. Просто используйте свою IDE, чтобы узнать, какие методы withMisfire*()
доступны, и используйте либо withMisfireHandlingInstructionDoNothing
, либо withMisfireHandlingInstructionNextWithRemainingCount
(оба будут игнорировать пропущенное выполнение и дождитесь следующего запланированного).
Когда мне нужно было узнать о различных типах инструкций о пропуске зажигания, помимо учебников Quartz и документации по API, я использовал this blog entry.
Спасибо! Я использую CronTrigger как этот 'TriggerBuilder.newTrigger(). WithSchedule (CronScheduleBuilder.cronSchedule (cronSchedule) .withMisfireHandlingInstructionDoNothing()). Build();'. Я посмотрю, исправляет ли я свои проблемы, но я уверен. –
@MartinFernau Как все прошло? – walen
выглядит великолепно. Сегодня тесты показывают, что задания больше не выполняются. Благодаря! –