我有一个每X分钟运行一次的服务.如果由于某些不可预见的原因,该作业的耗时超过X分钟,我想确保触发器不会启动此作业的第二个实例.
示例场景
有没有办法连接Quartz.NET只允许1个Job的实例?我可以用第二个触发器等待第一个触发完成,或者我也可以选择跳过第二个触发器,因为它会在一分钟内再次触发.
我看了一下Quartz API的Java版本,发现了一个属性' DisallowConcurrentExecution ',但是在.NET版本中找不到类似的东西.
我的Quartz.NET实现代码
public IScheduler Scheduler { get; set; }
public IJobListener AutofacJobListener { get; set; }
public void Start()
{
var trigger = TriggerUtils.MakeMinutelyTrigger(1);
trigger.Name = @"Document Import Trigger";
Scheduler.ScheduleJob(new JobDetail("Document Import", null, typeof(DocumentImportJob)), trigger);
Scheduler.AddGlobalJobListener(AutofacJobListener);
Scheduler.Start();
}