Quartz.net 如何在触发器上设置 MisfireInstruction

Quartz.net How to set MisfireInstruction on trigger

在 Quartz 1.0.x 中,可以通过简单地设置触发器来设置 MisfireInstruction:

trigger.MisfireInstruction = MisfireInstruction.CronTrigger.DoNothing;

我们将 Quartz 版本升级到 2.3.2,不能再这样设置了,因为 trigger.MisfireInstruction 已经没有 setter了。

现在如何在触发器上设置 MisfireInstruction?

我试着用这样的 TriggerBuilder 重新创建触发器:

trigger = trigger.GetTriggerBuilder()...

但我在 TriggerBuilder 上也找不到 MisfireInstruction-Method。

感谢您的帮助

我猜这个行为在版本 2 中发生了变化。
MisfireInstruction 现在是只读的 属性,它是使用构建器设置的,如您在 codebase.

中所见

现在您可以使用 TriggerBuilder 设置 MisfireInstruction

ITrigger myTrigger = TriggerBuilder
    .Create()
    .WithIdentity("trigger1", "myGroup")
    .WithCronSchedule("0 0 12 1/5 * ? *", x => x.WithMisfireHandlingInstructionDoNothing())
    .Build();

您可以使用几个选项:

您可以使用这些选项:

  • WithMisfireHandlingInstructionDoNothing
  • WithMisfireHandlingInstructionFireAndProceed
  • WithMisfireHandlingInstructionIgnoreMisfires

可以找到一篇解释得很好的好文章here