Quartz.NET 2.6.1:同时触发同一个Job触发器的多个触发器,但只需要触发一个触发器

时间:2017-11-21 11:05:54

标签: quartz.net quartz.net-2.0

我有多个触发器作业。在某些情况下,触发器将重叠。当Quartz.NET确定需要触发重叠的触发器时,会为每个触发器执行IJob.Execute(IJobExecutionContext context)方法。

有没有办法防止这种重叠?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我没有测试过这个,但我会给它一个机会:

[DisallowConcurrentExecution]
public class Job : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        bool wasExecutedAt = WasExecutedAt(context.ScheduledFireTimeUtc);
    }

    private bool WasExecutedAt(DateTimeOffset? fireTime)
    {
         // Check and maintain the state
    }
}