Aşağıda gösterildiği gibi yeniden programlama kodunu yazdım. "120 saniyede bir tekrarla" diyen programa rağmen, Execute() yöntemi, UpdateQuartzJobTrigger yöntemini tamamladıktan hemen sonra çağrılmaya devam ediyor.Quartz.NET beklendiği gibi çalışma değil
class Model : IJob
{
public void Execute(IJobExecutionContext context)
{
Debug.WriteLine("Executing Job: " + DateTime.Now.ToShortTimeString());
//Do some stuff
UpdateQuartzJobTrigger(context);
}
private void UpdateQuartzJobTrigger(IJobExecutionContext context)
{
// Trigger the job to run now, and then every 120 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(context.Trigger.Key.Name, context.Trigger.Key.Group)
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(120)
.RepeatForever())
.Build();
var result = context.Scheduler.RescheduleJob(context.Trigger.Key, trigger);
}
}
Olası yinelenen [Quartz.Net set - Başlamak için basit bir tetikleyiciyi geciktirin) (http://stackoverflow.com/questions/3515542/quartz-net-delay-a-simple-trigger-to-start) –
@AndrewMorton, bu iki kopyadan çok uzaktır. Sorunuzdaki OP, bir hizmet başlatırken ** tetikleyicileri ertelemeye çalışıyor. Herhangi bir şeyi ertelemeye çalışmıyorum, bu programın ölçütleri karşılandığında tetikleyicinin yeniden planlanması ve tetiklenmesini istiyorum. – Ashish