Cron表达式是一个字符串,用于定义定时任务的执行计划。它最初在Unix系统中使用,现在广泛用于各种系统和编程框架。
基本格式
标准格式:
秒 分 时 日 月 星期 [年](可选)
[!note]
注意:不同系统/库的实现可能有差异,常见的格式有:
- Linux Crontab:
分 时 日 月 星期- Quartz/Spring:
秒 分 时 日 月 星期 [年]
各字段详解
| 字段 | 允许值 | 允许的特殊字符 |
|---|---|---|
| 秒 | 0-59 | , - * / |
| 分 | 0-59 | , - * / |
| 时 | 0-23 | , - * / |
| 日 | 1-31 | , - * / ? L W |
| 月 | 1-12 JAN-DEC |
, - * / |
| 星期 | 0-6 (0表示周日) SUN-SAT |
, - * / ? L # |
| 年(可选) | 1970-2099 | , - * / |
特殊字符详解
| 符号 | 含义 | 示例 | 解释 |
|---|---|---|---|
* |
该字段的所有值 | * * * * * ? |
每秒执行 |
, |
枚举,列出多个值 | 0 5,15,25 * * * ? |
每小时的第5、15、25分钟执行 |
- |
指定一个范围 | 0 0 9-17 * * ? |
每天9点到17点每小时执行一次 |
/ |
指定增量 |
0 */5 * * * ?0 0/30 * * * ?
|
每5分钟执行一次 每30分钟执行一次(从0分开始) |
? |
不指定值 仅用于"日"和"星期" |
0 0 12 * * ?0 0 12 ? * MON
|
每天12点执行 每周一12点执行 |
L |
Last(最后) |
0 0 0 L * ?0 0 0 ? * 5L
|
每月最后一天午夜执行 每月最后一个星期五 |
W |
Weekday(工作日) 最近的工作日 |
0 0 0 15W * ? |
每月15号最近的工作日 |
# |
第几个星期几 | 0 0 0 ? * 6#3 |
每月第三个星期五 |