J'ai un travail planifié qui ont un intervalle de répétition toutes les 5 minutes. Ça fonctionne bien.Comment rendre le processus Quartz.NET synchrone?
Mais j'ai une situation où mon premier travail ne se termine pas en 5 minutes et un deuxième travail commence (comme prévu 5 minutes).
Je ne veux pas faire cela, un seul travail devrait fonctionner à la fois. Comment puis je faire ça?
Ceci est mon code:
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();
Il n'a même pas à attendre; il peut essayer et saisir le mécanisme de synchronisation. Si cela échoue, alors le travail devrait retourner que c'est terminé et être fait. Si cela l'attrape, alors il devrait traiter. Il n'y a pas de "rattrapage". Bien sûr, le fait qu'il a sauté devrait être enregistré, et on devrait réévaluer son calendrier à ce moment-là. – casperOne