参数序号 | 参数名 | 是否可选 |
1 | Seconds | 否 |
2 | Minutes | 否 |
3 | Hours | 否 |
4 | Day-of-Month | 否 |
5 | Month | 否 |
6 | Day-of-Week | 否 |
7 | Year | 是 |
例如:"0 0 12 ? * WED"
在每星期三下午 12:00 执行
其中每个元素可以是一个值 (6),一个连续区间 (9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符,由于月份中的日期和星期中的日期这两个元素互斥的,必须要对其中一个设置 ?
0 0 10,14,16 * * ? 每天上午 10 点,下午 2 点,4 点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午 12 点
个别子表达式可以包含范围,例如在前面的例子里 WED
可以替换成 MON-FRI
,MON, WED, FRI
甚至是 MON-WED,SAT
每一个字段都有一套可以指定有效值,如下:
参数名 | 有效值 |
Seconds (秒) | 可以用数字 0~59 表示 |
Minutes(分) | 可以用数字 0~59 表示 |
Hours(时) | 可以用数字 0~23 表示 |
Day-of-Month (日) | 可以用数字 1~31 中的任一个值,但要注意一些特别的月份 |
Month (月) | 可以用 0~11 或用字符串 JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC 表示 |
Day-of-Week (周) | 可以用数字 1~7 表示(1=星期日)或用字符口串 SUN, MON, TUE, WED, THU, FRI, SAT 表示 |
* | 代表整个时间段 |
/ | 为特别单位,表示为 每 如 0/15 表示每隔 15 分钟执行一次, 0 表示为从 0 分开始,3/20 表示表示每隔 20 分钟执行一次,3 表示从第 3 分钟开始执行 |
? | 表示每月的某一天,或第周的某一天,由于月份中的日期和星期中的日期这两个元素互斥的,必须要对其中一个设置 ? |
L | 用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如 6L 表示每月的最后一个星期五 |
W | 表示为最近工作日,如 15W 放在每月 (Day-of-Month) 字段上表示为到本月15日最近的工作日 |
# | 是用来指定每月第 N 个工作日,在每周(Day-of-Week)这个字段中内容为 6#3 或者 FRI#3 则表示每月第三个星期五 |
Cron 表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
作者 tojohnonly