cron表达式包含7个域,用空格进行分割,其中年可选填
秒 分 时 天/月 月 天/星期 年
0 0 0 * * ?
上面的表达式表示在每天00:00:00执行一次。
值范围
域 | 有效值 | 描述 |
秒 | 0~59的整数 以及 , - * / | |
分 | 0~59的整数 以及 , - * / | |
时 | 0~23的整数 以及 , - * / | |
天/月 | 1~31的整数 以及所有符号 | |
月 | 1~12的整数 月份英文缩写 以及 , - * / | 英文缩写如JAN |
天/星期 | 1~7的整数 星期英文缩写 以及除W外的所有符号 |
1表示周日 2表示周一 英文缩写如MON |
年(可选) | 1970~2099 |
符号
符号 | 描述【开头的方括号表示允许的域】 | 举例 |
, | 表示枚举,在某个域可以指定多个值,在这个几个值下都可以触发 | 0 0 0,4,8 * * ? 表示在每天0,4,8点各触发一次 |
- | 表示范围,在某个范围内,都会触发时间,参数:起始时刻-结束时刻 | 0 0 0-8 * * ? 表示在每天0-8点各触发一次 |
? | 【天/月,天/星期】 表示不指定,用于解决【天/月】【天/星期】两者冲突的问题,当其中一个有值时,另一个需要指定为? | 0 0 0 ? * MON 表示在每个星期一的0点触发 |
* | 表示任意值,在该域下的所有值都会触发 | 0 0 * * * ? 表示在每天每小时的0分0秒时都触发一次 |
L | 【天/月,天/星期】表示最后,用于指定如最后一天 | 0 0 0 L * ? 表示每月的最后一天的0点0分0秒触发一次 |
W | 【天/月】表示该月中最近的工作日(周一到周五),可与数字,L连用,LW表示每月最后一个工作日 | 0 0 0 1W * ? 表示距离每月1号最近的工作日的0点0分0秒触发一次 |
/ | 表示间隔,用于如每隔30分钟执行一次这样的场景,参数:开始时刻/间隔 | 0 0 0/6 * * ?表示从0点开始,每隔6小时执行一次,分别是0点,6点,12点,18点。 |
# | 【天/星期】 表示第几个 用于指定每月的第几个星期,参数: 第几个#星期几 | 0 0 0 ? * 1#3 表示每月的第一个星期四的0点0分0秒触发一次 |
用过的示例
- 0 0 0 * * ? 每天的0点0分0秒触发
其余待补充...