2

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

谢谢你的帮助

4

1 回答 1

5

我猜这种行为随着版本 2 的变化而改变。
MisfireInstruction现在是一个只读属性,它是使用构建器设置的,正如您在代码库中看到的那样。

现在您可以MisfireInstruction使用TriggerBuilder:

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

您可以使用几个选项:

您可以使用以下选项:

  • With MisfireHandlingInstructionDoNothing
  • With MisfireHandlingInstructionFireAndProceed
  • With MisfireHandlingInstructionIgnoreMisfires

可以在此处找到具有很好解释的非常好的文章。

于 2015-07-08T09:13:12.737 回答