CRON表达式:“第0分钟执行”与“每60分钟执行”的区别
CRON表达式
0 * * * *与0/60 * * * *的差异分析 在绝大多数主流CRON解析器中,这两个表达式的实际执行效果完全一致,都能实现每小时整点启动任务,但二者的语法逻辑存在细微区别:
- 语法逻辑差异
0 * * * *:直接指定分钟位为0,其余时间位(小时、日、月、周)为通配符*,逻辑是“只要当前分钟是0,就执行任务”,本质是匹配所有整点时刻。0/60 * * * *:采用步长语法,逻辑是“从分钟0开始,每隔60分钟执行一次”。由于CRON分钟位的取值范围是0-59,60分钟刚好是一个完整的小时周期,所以最终只会在每个小时的0分钟触发任务。
特殊情况说明
极少数严格遵循CRON规范的解析器可能会对“步长超过时间位范围”的写法有不同处理,但这种情况非常罕见。主流调度工具(如Linux crontab、Spring Task、Quartz等)均将这两个表达式视为等价。
建议
如果你的需求是每小时整点启动任务,两种写法都可以满足,但0 * * * *更直观易懂,是行业内的常规写法,推荐优先使用。
内容的提问来源于stack exchange,提问作者leftjoin
相关产品推荐
相关产品推荐

