我想写一个每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
。