Mam zaplanowane zadanie, które ma interwał powtarzania co 5 minut. Działa dobrze.Jak synchronizować proces Quartz.NET?
Ale mam sytuację, w której moja pierwsza praca nie kończy się w 5 minut i rozpoczyna się drugie zadanie (zaplanowane na 5 minut).
Nie chcę tego robić, tylko jedna praca powinna działać na raz. Jak mogę to zrobić?
To jest mój kod:
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
Trigger emailTrigger = TriggerUtils.MakeMinutelyTrigger(5);
emailTrigger.StartTimeUtc = TriggerUtils.GetEvenMinuteDate(DateTime.UtcNow);
emailTrigger.Name = "EmailTrigger";
JobDetail emailJobDetail = new JobDetail("EmailJob", null, typeof(EmailJob));
sched.ScheduleJob(emailJobDetail, emailTrigger);
sched.Start();
Nie musi nawet czekać; może spróbować pobrać mechanizm synchronizacji. Jeśli się nie powiedzie, zadanie powinno powrócić, aby było kompletne i gotowe. Jeśli to chwyci, to powinno się przetworzyć. Nie ma "dogania". Oczywiście, fakt, że został pominięty, powinien zostać zarejestrowany, a następnie należy go ponownie ocenić w tym momencie. – casperOne