我的工作计划每分钟执行一次:
var trigger = TriggerBuilder.Create().
StartNow().
WithSimpleSchedule(x => x.WithIntervalInMinutes(1).RepeatForever()).
Build();
但有时需要执行超过一分钟的工作。因此,下一个工作将开始,直到上一个完成,并导致一些冲突。
是否可以告诉Quartz.Net计划每分钟运行一个作业,但前提是前一个作业已经完成?
答案 0 :(得分:14)
如果您正在使用Quartz 2.x,则需要使用DisallowConcurrentExecutionAttribute修饰您的作业类。如下所示:
[Quartz.DisallowConcurrentExecutionAttribute()]
public class HelloJob : IJob
...
这在常见问题解答中解决了"如何让作业同时解雇?" http://www.quartz-scheduler.net/documentation/faq.html