我的cron(Java Quartz job scheduler)表達式應該在1月9日下午12點(本月的第二個星期五)觸發,下一個時間表應該是6月份從1月9日開始,並在該月的第二個星期五和下午12點。cron表達式每6個月運行一次,並在本月的第二個星期五
下表達式將按預期工作?
* * 12 ? 1/6 6#2
問候, DAM
我的cron(Java Quartz job scheduler)表達式應該在1月9日下午12點(本月的第二個星期五)觸發,下一個時間表應該是6月份從1月9日開始,並在該月的第二個星期五和下午12點。cron表達式每6個月運行一次,並在本月的第二個星期五
下表達式將按預期工作?
* * 12 ? 1/6 6#2
問候, DAM
0 0 12 ? 1-7/6 6#2
0 --> run only at Secs :00
0 --> run only at minute :00
12 --> Runs on 12 noon
? --> no specific value
1-7/6 --> runs only on months 1 (January) or 7 (July)
6#2 --> Second friday of the month
Next few Schedules
1. Friday, January 9, 2015 12:00 PM
2. Friday, July 10, 2015 12:00 PM
3. Friday, January 8, 2016 12:00 PM
4. Friday, July 8, 2016 12:00 PM
5. Friday, January 13, 2017 12:00 PM
你1/6
需要包括在6個月的步驟,以覆蓋全範圍。
因此,例如,1-7/6
將在1個月(1月)開始,然後到第7個月(7月)作爲下一個計劃運行,因爲它在6
步驟涵蓋了從1-7的範圍內你完整的命令應該是
0 12 8-14 1-7/6 5
解讀:
0
=僅在分鐘運行:00,
12
=中午的一個小時內運行,
8-14
僅在每月(匹配)期間從8-14(第二個星期五必須只落在這些日期中的一個,並且第一個星期五不能落在其中任何一個)上運行,
1-7/6
僅在第1個月運行(1月)或7(7月),
5
並且僅在第5天(這是星期五,因爲週日索引0或7)。
由於cron只有在所有上述內容匹配時才能運行,命令將在1月和7月的第二個星期五中午12點運行。
Joseph,謝謝你的回覆。我正在修改你的表達 - > 0 0 12? 1-7/6 6#2。通過cron驗證,所以應該工作。 – Damo
爲了可能正在查看您的答案的其他人的利益,您是否能夠指定您使用的是哪種cron?例如,您是否使用Java Quartz作業調度程序? (我要求你澄清的原因是你使用的語法不被標準cron支持,至少對於最近的Linux或BSD是不支持的。) –
是的,它是Java Quartz作業調度程序。 – Damo
謝謝,@Damo!現在,這是一個明確的問題和良好的答案。 –