Quartz.net如何在触发器

时间:2015-07-08 09:00:11

标签: c# .net quartz-scheduler quartz.net misfire-instruction

在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。

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

我猜这种行为随着版本2发生了变化 MisfireInstruction现在是一个只读属性,可以使用构建器进行设置,如codebase中所示。

现在,您可以使用MisfireInstruction

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

您可以使用以下几个选项:

您可以使用以下选项:

  • WithMisfireHandlingInstructionDoNothing
  • WithMisfireHandlingInstructionFireAndProceed
  • WithMisfireHandlingInstructionIgnoreMisfires

可以找到一篇非常好的文章,其中有一个很好的解释here