Cron表达式5/15 * * * *无法生效,如何配置实现从每小时第5分开始每15分钟执行一次任务?
Cron表达式5/15 * * * *无法生效,如何配置实现从每小时第5分开始每15分钟执行一次任务?
嗨,这个问题我碰到过好多次了,很多人都会被cron的步长语法坑到!
首先给你最稳妥、兼容性最强的解决方案:直接把需要执行的分钟数全部列出来,也就是用这个表达式:
5,20,35,50 * * * *
这个写法所有的cron实现都能正确解析,绝对不会出问题,它会精确地在每小时的5分、20分、35分、50分触发任务,完全符合你的需求。
至于你用5/15 * * * *没生效的原因,主要是不同系统的cron解析逻辑有差异。现代的cron实现(比如新版本的cronie或者Linux系统上的主流cron)确实支持x/y这种“从x开始每隔y个单位执行”的语法,理论上5/15应该对应5、20、35、50这几个时间点,但有些老版本的cron(比如部分老式UNIX系统上的Vixie Cron)对这个语法的解析不太一样,可能会忽略起始值的设定,或者只识别能被15整除的分钟数,导致你的任务根本没被触发。
另外也可以顺手检查下是不是你的cron服务没重新加载配置,或者任务脚本本身有语法问题,但优先换用枚举分钟的写法肯定能解决核心问题~
备注:内容来源于stack exchange,提问作者u936293
相关产品推荐
相关产品推荐

