仅在执行上一个作业后才执行作业

时间:2014-10-24 04:17:04

标签: quartz.net

我的工作计划每分钟执行一次:

        var trigger = TriggerBuilder.Create().
            StartNow().
            WithSimpleSchedule(x => x.WithIntervalInMinutes(1).RepeatForever()).
            Build();

但有时需要执行超过一分钟的工作。因此,下一个工作将开始,直到上一个完成,并导致一些冲突。

是否可以告诉Quartz.Net计划每分钟运行一个作业,但前提是前一个作业已经完成?

1 个答案:

答案 0 :(得分:14)

如果您正在使用Quartz 2.x,则需要使用DisallowConcurrentExecutionAttribute修饰您的作业类。如下所示:

[Quartz.DisallowConcurrentExecutionAttribute()]
public class HelloJob : IJob
...

这在常见问题解答中解决了"如何让作业同时解雇?" http://www.quartz-scheduler.net/documentation/faq.html