我的作业计划每隔30秒运行一次Quartz Crontrigger。因此,时间表是" 0/30 * *? * MON-FRI"。它没有问题。
但是,我想暂停工作一分钟。所以我调用scheduler.PauseAll();
,它应该暂停调度程序中的所有触发器。然后让线程休眠一分钟,然后调用scheduler.ResumeAll();
。所以我的代码看起来像这样:
scheduler.PauseAll();
System.Threading.Thread.Sleep(60000);
scheduler.ResumeAll();
触发器暂停适当的时间,但是当它恢复时,作业将运行两次。我的工作设置为失火处理.WithMisfireHandlingInstructionDoNothing()
,所以我不明白为什么在这种情况下作业执行两次。我看了this个问题,但OP暂停了工作而不是触发器,所以我没有发现它有用。