我知道以前有人问过这个问题。但在我看来,这些问题的答案是不正确的。
我想要一个CronExpression (石英),每两天安排一次。CronExpression“应该是”0 0 0 1/2 * ? *。
但是:从今天(2017年10月9日)开始,CronMaker表明这不是真的。这个表达式的基本意思是:从每个月的第一天开始,每两天安排一次日程。这意味着:从2017年10月9日开始,下一次是:
2017年10月11日(星期三)上午12时
2017年10月13日(星期五)上午12时
2017年10月15日(星期日)上午12时
2017年10月17日(星期二)上午12时
2017年10月19日(星期四)上午12时
2017年10月21日(星期六)上午12时
2017年10月23日(星期一)上午12时
2017年10月25日(星期三)上午12时
2017年10月27日(星期五)上午12时
2017年10月29日(星期日)上午12时
2017年10月31日(星期二)上午12:00
2017年11月1日(星期三)上午12:00
正如你所看到的:在最后两次之间只有一天。
因此,当我使用自由格式化程序来描述cron式时,它声明:
每天早上00:00,从每月1日开始每两天一次。
在上面列出的时间里显示了这一点。但我需要每两天正确发射一次的东西。
2017年10月31日(星期二)上午12时
2017年11月2日(星期四)上午12时
诸若此类。
显然,石英的简单触发对我来说不是一个真正的选择!
发布于 2017-10-09 22:15:24
这是因为你误解了cron表达式的工作原理。每个月都会从月的第一天开始。如果它能在其他方面发挥作用,那么下个月就不能满足1/2的表达方式。
要获得更详细的解释,请看这里:
https://stackoverflow.com/questions/46643864
复制相似问题