cron表达式
形式及含义
秒、分、时、日、月、周、(年)
年是可选项
字段 | 值 | 允许的字符 | 示例 |
---|---|---|---|
秒 | 0~59整数 | ,-*/ | |
分 | 0~59整数 | ,-*/ | |
时 | 0~23整数 | ,-*/ | |
日 | 1~31整数 | ,- * ? / L W C | |
月 | 1~12整数 | , - * / | |
周 | 1~7整数(周日为第1天) | , - * ? / L C # | |
年(可选字段) | 1970~2099 | , - * / |
符号含义
,
:匹配列出的值 比如在分字段使用 0,10,20,40 表示 0分、10分、20分、40分都会执行-
:匹配范围的值 比如在分字段使用 0-20 表示从0分开始到20分截止,每分钟执行一次*
:匹配任意的值 比如在分字段使用 表示每分钟都会执行/
:匹配起始周期 比如在分字段使用0/10,表示从0分开始,每10分钟执行一次?
:匹配任意的值 只能在 日、周两个字段使用。因为这两个字段会相互影响,如果都使用*则表示满足周或者日都会执行,所以如果只要1号执行不管周几,日用1,周用?L
: last,最后的意思只能在 日、周两个字段使用,用在日中表示月份的最后一天前面不能接数字,用在周中表示当月最后一周的周几前面可以接数字 (0 0 0 ? * 5L * 每月最后一个周4)W
:匹配有效的工作日(周一~周五)只能在日字段使用C
:没用到过,不明白怎么用的#
:周字段中使用。这个字符用于指定本月的某某天。例如:6#3
表示本月第三周的星期五(6表示星期五,3表示第三周)。2#1
表示本月第一周的星期一。4#5
表示第五周的星期三。
常用表达式
- 每天凌晨1点执行一次
0 0 1 * * ?
- 每天凌晨1点每10分钟执行一次
0 0/10 1 * * ?
- 每月1号凌晨1点执行一次
0 0 1 1 * ?
- 每月10号最近的一个工作日凌晨1点执行一次
0 0 1 10W * ?