我正在使用quartz.net和CRON調度。 我失火指令設置爲:火和着手:Quartz.net - 失火指示不起作用
trigger = Quartz.TriggerBuilder.Create()
.WithIdentity(jobData.JobId, jobData.ClientApplicationId.ToString())//.WithCronSchedule(scheduleInfo.CronExpression, WithMisfireHandlingInstructionDoNothing())
.WithSchedule(Quartz.CronScheduleBuilder.CronSchedule(new Quartz.CronExpression(scheduleInfo.CronExpression)).WithMisfireHandlingInstructionFireAndProceed())//.WithMisfireHandlingInstructionDoNothing()) ///.WithMisfireHandlingInstructionFireAndProceed()
.StartAt(DateTime.Now).ForJob(iJobDetail)
.Build();
從我讀,如果觸發被錯過了,它應儘快調度高達 (一次最大火,即使作業是假設運行很多次)。
由於某些原因,當我測試它時,工作從不觸發。 假設我有一份工作應該從4:00開始每小時運行一次。 我在7:30打開調度程序,直到8:00才觸發任何觸發器。 misfireThreshold設置爲(60000) - 一分鐘。
工作是國家政府,不允許併發運行。 我正在使用持久性存儲(AdoJobStore) - 將計劃保存到MSSQL DB。
任何想法爲什麼觸發器不按計劃激活觸發?
您使用的是持久的工作專賣店?下一次着火時間是在添加作業和調度程序開始時計算的,RAMJobstore在關閉時會丟失此信息。 –
是的,這是一個非常重要的事情 - 我使用的是數據庫而不是RAM存儲,我會將其添加到我的問題中。謝謝 –
還有哪個版本?確保你正在運行最新版本。 –