У меня есть служба, которая запускается каждые X минут. Если это задание по какой-то непредвиденной причине занимает больше X минут, я хочу убедиться, что триггер не запускает второй экземпляр этого задания.
Пример сценария
Есть ли способ подключить Quartz.NET, чтобы разрешить только 1 экземпляр задания? Я согласен со вторым триггером, ожидающим завершения первого, или я также согласен с возможностью пропуска второго триггера, поскольку он сработает снова через минуту.
Я взглянул на Java версии Quartz API и обнаружил свойство « 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();
}