cron 表达式 0 10 0/2 * * ? 的含义
cron 表达式 0 10 0/2 * * ?
的含义是:每天从 0 点开始,每 2 小时执行一次任务,且每次执行的时间点为每小时的 第 10 分钟 0 秒
。以下是详细解析:
字段分解与含义
该表达式包含 6 个字段,结构为:秒 分 时 日 月 周
(年份字段省略):
字段 | 值 | 含义 | 解释 |
---|---|---|---|
秒 | 0 | 固定为第 0 秒触发 | 任务在每分钟的 00 秒 启动1,3。 |
分钟 | 10 | 固定为第 10 分钟触发 | 任务在每小时的 10 分 00 秒 执行1,7。 |
小时 | 0/2 | 从 0 点开始,每 2 小时触发一次 | 触发时间点为 0点、2点、4点、…、22点 (全天共 12 次)1,9。 |
日 | * | 每天触发 | 不限定具体日期3,7。 |
月 | * | 每月触发 | 不限定具体月份3,7。 |
周 | ? | 不指定星期几 | 与 日 字段互斥,此处忽略星期影响1,9。 |
执行时间示例
- 每天的具体执行时刻(以 24 小时制列出):
00:10:00
、02:10:00
、04:10:00
、06:10:00
、08:10:00
、10:10:00
、
12:10:00
、14:10:00
、16:10:00
、18:10:00
、20:10:00
、22:10:00
。
总计每天执行 12 次,每次均在小时的第 10 分钟整点触发1,7,9。
常见对比案例
为帮助理解,以下列出类似表达式对比:
cron 表达式 | 含义 |
---|---|
0 10 * * * ? | 每小时的第 10 分钟执行(每天 24 次)3,7。 |
0 0 0/2 * * ? | 每 2 小时的第 0 分钟执行(如 00:00、02:00 等)9。 |
0 10 12 * * ? | 每天中午 12:10 执行1,7。 |
适用场景
此类表达式适合需要 高频周期性执行 的任务,例如:
- 系统监控:每 2 小时检查一次服务状态1。
- 数据同步:定时从数据库备份增量数据7。
- 日志清理:在低峰时段(如凌晨)定期清理日志3。
⚠️ 注意:cron 表达式在不同系统(如 Linux Crontab、Quartz 调度框架)中可能存在细微差异。例如,Linux Crontab 通常省略秒和年字段(格式为
分 时 日 月 周
),而 Quartz 等工具支持秒字段。若实际运行不符预期,需检查执行环境兼容性3,6。