今天遇到一個問題,調度器在啓動時沒法馬上開始執行任務,代碼以下:ui
var trigger = TriggerBuilder.Create() .StartNow() //此處無效 .WithCronSchedule("0 0/30 10-20 * * ?") .Build();
F12 能夠看到 StartNow() 註釋以下:this
// // 摘要: // Set the time the Trigger should start at to the current moment - the trigger // may or may not fire at this time - depending upon the schedule configured // for the Trigger. // // 返回結果: // the updated TriggerBuilder public TriggerBuilder StartNow();
在 stockoverflow 上查找結果以下spa
由上述得知,當使用 Cron 表達式時,StartNow 方法不會起任何效果,Cron 有其本身的執行時間。目前看來 StartNow 應該只適用於 SimpleTrigger 觸發器。blog
解決方法:get
1.如上圖,增長一個僅有 StartNow 的觸發器來馬上觸發 Jobit
2.可在 scheduler.Start() 啓動前手動調用執行 Job 一次io