Cron表达式周/星期/天时无效报错失败
Cron 表达式通常包含6个或7个字段(具体取决于系统实现),标准格式
秒 | 分钟 | 小时 | 日 | 月 |
星期 | 年 | |
表达式字段 | * | * | * | * | * | ? | 可不填默认为 * |
Cron 表达式 | * * * * * ? |
Cron 表达式的标准格式通常包括6或7个字段,具体格式
-
6 字段格式
(最常见的 UNIX/Linux Cron 格式):
秒 分 时 日 月 星期
-
7 字段格式
(常见于某些系统,如 Quartz Scheduler 等):
秒 分 时 日 月 星期 年
在 7 字段格式 中,年(Year) 是最后一个字段,而在 6 字段格式 中没有年字段,因此年字段在这类系统中是可选的。
为什么 UNIX/Linux Cron 只支持 6 字段格式
- 设计简洁性:UNIX Cron 的设计目标是简洁、高效,并且适用于周期性任务调度。它不涉及复杂的年份管理,而是专注于日常、月度或年度的任务调度。
- 历史遗留:UNIX Cron 的设计沿用了很久,最早的 UNIX Cron 就没有包含年份字段,更多是考虑日常系统任务和服务的周期调度。
Cron表达式周/星期/天时无效报错失败
- 指定
具体星期几
执行的时, 此时的具体日期
必须指定为?
, 而不能为*
- 指定
具体日期
执行时, 此时的具体星期
必须指定为?
,而不可为*
错误原因
二者的时间范围会有交集, 同时执行会互斥, 参见文档:
https://www.bejson.com/othertools/cronvalidate/