如何cronjob
在指定时间(例如凌晨 4:10)每 2 天运行一次?
下面的表达对吗?
10 04 * * */2 MY-COMMAND
不,您在一周中可以被 2 整除的日子跑步。所以你在周日、周二、周四、周六运行它;Sun, Tue, ...(此字段从零开始。)
如果您将 移动*/2
到月份字段(第四个字段),您会遇到同样的问题,即月份的周期不均匀,天数不均匀,但异常的日子一年只会发生七次(闰年八次)而不是每周。
如果您绝对需要每隔一天运行一次作业,则需要某种外部逻辑。也许让脚本检查一个运行文件,如果它不到 25 小时(或者如果您将系统时间更改为夏令时可能是 26 小时)则中止,否则继续并更新运行文件的时间戳。
如果您查看作业执行天数,您会发现它还取决于您使用的月份(例如)如果您尝试每 5 天执行一次,那么作业将开始并且它会尝试将月份分成相等halfs(不是),因此它不会按预期工作,请参阅单击此处进行检查,因此必须使用withIntervalInHours(intervalInHours)
来使我们的案例正常工作