【问题标题】:Quartz.net How to set MisfireInstruction on triggerQuartz.net 如何在触发器上设置 MisfireInstruction
【发布时间】:2015-07-08 09:00:10
【问题描述】:

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

trigger.MisfireInstruction = MisfireInstruction.CronTrigger.DoNothing;

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

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

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

trigger = trigger.GetTriggerBuilder()...

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

感谢您的帮助

【问题讨论】:

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


    【解决方案1】:

    我猜这种行为在版本 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找到一篇很好的文章,有很好的解释。

    【讨论】:

    • 太棒了!谢谢:-)我明天会投票给你,因为我现在没有票了:)
    • 很高兴我能帮上忙,xeraphim。自 1.x 版以来,很多事情都发生了变化。如果您想了解更多关于新功能和实现的信息,您可以在 Jay Vilalta 的blog 上找到很多好文章。石英网用户必读。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多