Периодическое задание планировщика Sling будет перекрываться?

Я использую планировщик Sling для планирования периодических заданий, и мне интересно, планирую ли я выполнение задания A каждые 5 минут. В маловероятном случае задание запускается и занимает более 5 минут, что произойдет? Я указал, что задание не может выполняться параллельно.

  1. Задание A будет запущено снова сразу после завершения предыдущего запуска.
  2. Задание A будет запущено через 5 минут после завершения предыдущего запуска.

Под капотом планировщик Sling использует QuartzScheduler, поэтому, если вы знаете, как QuartzScheduler будет вести себя в этом случае, пожалуйста, поделитесь своими знаниями.

Любая помощь высоко ценится!


person Alvin    schedule 31.08.2012    source источник


Ответы (1)


В Quartz Scheduler 2.1.x аннотация DisallowConcurrentExecution используется для предотвращения одновременного выполнения одного и того же задания.

В Quartz Scheduler 2.0.x, чтобы отменить параллельное выполнение задания, необходимо реализовать Интерфейс StatefulJob.

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

Поэтому, на мой взгляд, задание A будет запущено снова сразу после завершения предыдущего запуска. Я предполагаю, что Sling использует политику пропусков зажигания по умолчанию. В противном случае ответ зависит от выбора политики пропусков зажигания.

Вот как работает Quartz Scheduler. Я не знаю, как работает планировщик Слинга.

Надеюсь, это поможет.

person Apostolos Emmanouilidis    schedule 04.09.2012