Quartz.NET триггер: запускается один раз в указанный интервал - PullRequest
1 голос
/ 28 сентября 2011

Я использую библиотеку Quartz.NET в службе Windows, чтобы выполнять ежедневную работу среди других.Я использую AdoJobStore.По сути, я хочу, чтобы моя работа выполнялась один раз в любое время, например, между полуночью и 1:00.Поэтому, если служба была остановлена ​​в полночь, и кто-то запускает ее в 00:30, я хочу, чтобы задание было выполнено тогда (только один раз), но если служба запускается в 2 часа ночи, я не хочу, чтобы задание выполнялось в этот день.

Как настроить триггер на запуск только один раз за указанный интервал?

1 Ответ

1 голос
/ 30 сентября 2011

Похоже, вам нужно нестандартное поведение "осечка".Из Quartz docs :

Инструкции по пропускам зажигания

Другим важным свойством триггера является его "инструкция по пропускам зажигания".Пропуск зажигания происходит, если постоянный триггер «пропускает» время срабатывания из-за выключения планировщика или из-за того, что в пуле потоков Quartz нет доступных потоков для выполнения задания.У разных типов триггеров есть разные инструкции по пропускам огня.По умолчанию они используют инструкцию «умной политики», которая имеет динамическое поведение в зависимости от типа и конфигурации триггера.Когда планировщик запускается, он ищет все постоянные триггеры, которые дали сбой, и затем обновляет каждый из них в соответствии с их индивидуально настроенными инструкциями пропуска зажигания.Когда вы начнете использовать Quartz в своих собственных проектах, вы должны ознакомиться с инструкциями о пропусках зажигания, которые определены для данных типов триггеров и объяснены в их JavaDoc.Более подробная информация об инструкциях пропуска зажигания будет дана в уроках, относящихся к каждому типу триггера.

К сожалению, необходимое вам поведение не поддерживается сразу после установки.Вам нужно было бы запланировать, чтобы ваша работа выполнялась точно в полночь, а затем реализовать пользовательский пропуск .Должно быть возможно использовать ITriggerListener.TriggerMisfired.

...