一、cron表达式格式
Cron表达式由6或7个由空格分隔的时间字段组成
corn表达式格式为七个域,如:
秒 分 时 日 月 周 年
每一个域之间空格隔开
corn表达式格式为六个域,如:不指定“年”域时,年域可省略不写
秒 分 时 日 月 周
二、符号使用说明
1、所有域均可用
符号 |
---|
, - * / |
序号 | 符号 | 功能 |
---|---|---|
1 | , | x,y 表示x和y,例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次;在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五; |
2 | - | x-y 表示x到y ,例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次;在小时字段中使用“10-12”,则表示从10到12点,即10,11,12 |
3 | * | 可用在所有字段中,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟” |
4 | / | x/y表示从x起,每隔y,如在分钟字段中使用0/15,则表示为0,15,30和45秒,而5/15在分钟字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y |
2、“日”域另有“?”,“L”,“W”,“C”
序号 | 符号 | 功能 |
---|---|---|
1 | ? | 表示不指定“日”域的值。规则是指定“周”域,则“日”域必须为“?”。反之,指定“日”域,则“周”域必须为“?”。如0 0 12 ? * MON 或 0 0 12 1 * ? |
2 | L | L 2种写法。一,表示月末几天,如2L, 表示月末的2天。二,表示月末倒数第几天,如L-3,表示月末倒数第3天。 |
3 | W | 表示临近某日的工作日,如15W,表示最接近15号的工作日,可能是15号(刚好是工作日)、15号前(刚好周六)或15号后(刚好周日)。 |
4 | C | 表示和Calendar计划关联的值,如1C表示,1日或1日后包括Carlendar的第一天。 |
5 | LW | L和W的组合,只能出现在"日"域中。表示某月最后一个工作日,不一定是周五 |
6 | # | 该字符只能在星期字段中使用,表示当月某个工作日。如6#3表示当月的第三个星期五(6表示星期五,#3表示当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发 |
参考:
三、举例说明
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
0 0 12 * * ? 每天12点触发
0 15 10 ? * * 每天10点15分触发
0 15 10 * * ? 每天10点15分触发
0 15 10 * * ? * 每天10点15分触发
0 15 10 * * ? 2005 2005年每天10点15分触发
0 * 14 * * ? 每天下午的 2点到2点59分每分触发
0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
0 0/5 14,18 * * ? 每天下午的 2点到2点59分、18点到18点59分(整点开始,每隔5分触发)
0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
0 10,44 14 ? 3 WED 3月每周三下午的 2点10分和2点44分触发
0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发
0 15 10 15 * ? 每月15号上午10点15分触发
0 15 10 L * ? 每月最后一天的10点15分触发
0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发
0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发
0 15 10 ? * 6#3 每月的第三周的星期五开始触发
0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
0 11 11 11 11 ? 每年的11月11号 11点11分触发
每隔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 * * ?