2
我正在嘗試使用Quartz.NET安排一些作業,但無法使其工作。我嘗試了下面的代碼,但是在滿足指定的時間時沒有發生任何事情。使用Quartz.NET調度Cron作業
public void Test()
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();
IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
.WithIdentity("TestJob")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.ForJob(jobDetail)
.WithCronSchedule("0 26 18 * * ?")
.WithIdentity("TestTrigger")
.StartNow()
.Build();
scheduler.ScheduleJob(jobDetail, trigger);
scheduler.Start();
}
UPDATE:
我也嘗試了以下,以確保它不是導致該問題的cron表達式。沒有爲我工作,要麼...
IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
.WithIdentity("TestJob", "TestGroup")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.ForJob(jobDetail)
.WithSimpleSchedule(x=> x.RepeatForever().WithIntervalInSeconds(10).WithMisfireHandlingInstructionFireNow())
.StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(10)))
.WithIdentity("TestTrigger", "TestGroup")
.Build();
scheduler.ScheduleJob(jobDetail, trigger);
scheduler.Start();
Console.WriteLine(DateTime.UtcNow.ToLongTimeString());
Console.WriteLine(trigger.GetNextFireTimeUtc());
注意trigger.GetNextFireTimeUtc()
返回一個有效的時間值,但工作永遠不會被觸發。
我哪裏錯了?
是的,這是意圖。我已經將它設置爲每天20:00(現在按照我的時區)運行,並且什麼也沒有發生。 「Execute」方法開始處的斷點未被命中。有任何想法嗎? – Kassem 2013-02-16 18:02:12
您是否在應用程序中調用了Test()方法? – 2013-02-16 19:28:57
當然。我在控制檯應用程序的'Main'方法中調用它。我也嘗試了一個基於間隔的觸發器(正如你可以在更新的問題中看到的那樣),但它也不起作用。 – Kassem 2013-02-16 19:42:48