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

Очень хорошую статью с хорошим объяснением можно найти здесь.

Другие вопросы по тегам