如何在Java中通过Cron Job配置每月2日、17日每3小时执行任务
每月特定日期按固定间隔执行的Cron Job配置
正确的Cron表达式
要实现每月2日和17日,从凌晨1点开始每3小时执行一次的需求,精确到秒和分钟的正确表达式为:
0 0 1,4,7,10,13,16,19,22 2,17 * *
表达式字段解析(带秒的Cron格式,顺序为:秒 分 时 日 月 周)
0:秒位,指定整秒执行0:分位,指定整分执行1,4,7,10,13,16,19,22:时位,明确列出所有需要执行的小时点(从凌晨1点开始,每3小时递增)2,17:日位,指定每月的2日和17日*:月位,匹配所有月份*:周位,匹配所有星期(此处无需限制星期,保持通配即可)
原表达式的问题
你之前尝试的00 00 2-17 * * ?无法满足需求,原因如下:
- 字段逻辑错误:将日期范围写在了时位,变成了每天2到17点执行,而非指定每月2日、17日
- 时间间隔不符合:
2-17是连续小时范围,不是每3小时的离散时间点 - 周位使用
?多余:当已经指定具体日期时,周位用*即可,?通常用于日期和周位二选一的场景,此处不需要
内容的提问来源于stack exchange,提问作者Ayshe Ayparcasi
相关产品推荐
相关产品推荐

