Quartz.net Как установить MisfireInstruction на триггер
В Quartz 1.0.x это было возможно, поэтому установили MisfireInstruction на триггер, просто установив его:
trigger.MisfireInstruction = MisfireInstruction.CronTrigger.DoNothing;
Мы обновили версию Quartz до 2.3.2, и больше невозможно ее установить, потому что trigger.MisfireInstruction
больше не имеет сеттера.
Как можно теперь установить MisfireInstruction на триггер?
Я попытался воссоздать триггер с помощью TriggerBuilder следующим образом:
trigger = trigger.GetTriggerBuilder()...
но я не мог найти метод MisfireInstruction на TriggerBuilder тоже.
Спасибо за любую помощь
1 ответ
Это поведение изменилось с версией 2, я думаю.MisfireInstruction
теперь это свойство только для чтения, и оно устанавливается с помощью компоновщика, как вы можете видеть в кодовой базе.
Теперь вы можете установить MisfireInstruction
с использованием TriggerBuilder
:
ITrigger myTrigger = TriggerBuilder
.Create()
.WithIdentity("trigger1", "myGroup")
.WithCronSchedule("0 0 12 1/5 * ? *", x => x.WithMisfireHandlingInstructionDoNothing())
.Build();
Вы можете использовать несколько вариантов:
Вы можете использовать эти параметры:
- WithMisfireHandlingInstructionDoNothing
- WithMisfireHandlingInstructionFireAndProceed
- WithMisfireHandlingInstructionIgnoreMisfires
Очень хорошую статью с хорошим объяснением можно найти здесь.