Cron表示该月的第二天到最后一天

时间:2017-06-27 16:25:47

标签: java cron quartz-scheduler crontrigger

我想触发本月的第二天到第二天。

通常,这是本月的最后一个星期五(例如:2017年6月30日)

0 0 0 ? * FRIL 

我希望第二次能够持续(例如:2017年3月23日)

0 0 0 ? * FRIL-1 

但是这个语法返回与之前相同的结果(使用Quartz调度程序和cronmaker

该月的倒数第二天可以出现在该月的第3周或第4周。 所以它是:

either : 0 0 0 ? * FRI#3 
or     : 0 0 0 ? * FRI#4 

你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我不认为您可以使用cron语法表达这一点 不过,我可以想到一些解决方法:

  • 你可以在每个星期五安排你的工作,并有一些在职逻辑来检查它是否真的是倒数第二个。

  • 另一种选择是为上周五创建一个虚拟cron触发器,检索"下一个开火时间",从该日期开始减去7天并使用该确切日期创建实际触发器 - - 但是你必须每周都这样做(通过预先安排几个触发器,或者让你的工作在每次运行后重新安排)。