Ho un lavoro programmato con intervallo di ripetizione ogni 5 minuti. Funziona bene.Come eseguire il processo Quartz.NET in modo sincrono?
Ma ho una situazione in cui il mio primo lavoro non sta completando in 5 minuti e un secondo lavoro sta iniziando (come previsto per 5 minuti).
Non voglio farlo, solo un lavoro dovrebbe funzionare alla volta. Come lo posso fare?
Questo è il mio codice:
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();
Non è nemmeno necessario attendere; può provare e afferrare il meccanismo di sincronizzazione. Se fallisce, il lavoro dovrebbe restituire che è completo ed eseguito. Se lo prende, dovrebbe elaborarlo. Non c'è "recupero". Naturalmente, il fatto che sia saltato dovrebbe essere registrato, e si dovrebbe rivalutare la sua pianificazione in quel punto. – casperOne