我想寫一個每n周觸發一次的Cron表達式。每隔n周執行一次Cron表達式
我曾經想過是這樣的:
0 0 */21 * *
2013-09-01 00:00:00
2013-09-22 00:00:00
2013-10-01 00:00:00
2013-10-22 00:00:00
每this的Cron測試儀
但它觸發每隔1日,除了21日。
想法?
我想寫一個每n周觸發一次的Cron表達式。每隔n周執行一次Cron表達式
我曾經想過是這樣的:
0 0 */21 * *
2013-09-01 00:00:00
2013-09-22 00:00:00
2013-10-01 00:00:00
2013-10-22 00:00:00
每this的Cron測試儀
但它觸發每隔1日,除了21日。
想法?
如果您使用Quartz,那麼你可能能夠實現這一目標的時間表與SimpleTrigger代替:
Trigger trigger = newTrigger()
.withIdentity(triggerKey("myTrigger", "myGroup"))
.withSchedule(simpleSchedule()
.repeatHourlyForever(n * 7 * 24))
.startAt(...)
.build();
的「/」語法指定期間的增量,而不是重複間隔。承認一個微妙和混亂的差異。
在這種情況下,在1個月期間只有一個可用增量(21天)。第一個數字指定開始的值,在這種情況下爲0.在'/'之前指定'*'等同於指定0.因此,作業只會在第一天和第21天觸發。
如果你只想每個月發一次而不是重複一次,那麼你可以使用表達式0 0 21 * *
。
如果您希望工作定期觸發,那麼您可以使用指定repeatInterval
的Quartz SimpleTrigger
。