2017-06-18 96 views
2

我使用Quartz庫進行調度。我必須安排一個工作,每隔5(可能是可變的)小時。Quartz Cron表達式,用於在給定時間每隔5小時運行一次作業

我使用以下表達式試圖 -

0 0 12/5 1/1 *? *

我檢查了未來運行的輸出Cronmaker

計劃開始時間 - >週二,2017年6月21日10:30 AM

未來運行 -

  1. 週三,2017年6月21日下午12:00
  2. 週三,6月21日, 2017年5:00 PM
  3. 週三,2017年6月21日10:00 PM
  4. 週四,2017年6月22日下午12:00

表達做的事情是問,但我希望第4運行將是5小時除了第3道,即沿着這些路線的東西 -

  1. 週三,2017年6月21日下午12:00
  2. 週三,2017年6月21日下午5:00
  3. 週三,2017年6月21日10:00 PM
  4. 週四,2017年6月22日上午3:00

第四屆運行進行到下一一天的中午12點觸發。我希望它被添加到最後一次運行的時間。 有沒有什麼辦法可以通過cron-expression來實現?

+0

正確的表達式是'0 0 0/5 1/1 *? *' – Rabban

回答

2

CronSchedule不是最適合你想做的事情。

使用SimpleSchedule代替:

trigger = newTrigger() 
    .withIdentity("yourJobName", "yourJobGroup") 
    .withSchedule(simpleSchedule() 
     .withIntervalInHours(5) // every 5 hours 
     .repeatForever()) // keep going in intervals of 5h 
    .startAt(dateOf(12, 0, 0)) // start at 12:00 PM 
    .build(); 

您可以找到official documentation更多的例子。

相關問題