Cron 在 resume 后立即触发

Cron triggers fires immediately after resume

我正在使用如下语句将触发器添加到我的 Quartz.NET 调度程序:

ITrigger t = (ICronTrigger)TriggerBuilder.Create()
              .WithIdentity(triggerName, triggerGroup)
              .WithCronSchedule(cron)
              .Build();

比如说,cron 表达式每 3 分钟触发一次:

0 0/3 * 1/1 * ? *

在我的程序中,用户可以 PauseResume 已使用上述时间表安排的作业。

我看到的是,每次恢复暂停作业时,该作业都会在恢复后立即执行一次。这让我开始担心。这种行为是正常的还是有办法避免这种情况?

这是由于政策失误造成的。触发器错过了它的触发时间,被认为是 misfired 然后根据 misfire 策​​略采取行动。

您可以在创建触发器时调整触发器失火策略。请参阅教程以获取更多信息。

http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/more-about-triggers.html

http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontriggers.html