Cron Expression语法
前言
Cron表达式常被用于设置触发时间,比如Quartz中。写这篇的目的是配置Jenkins中Build periodically(定时构建)和Poll SCM(扫描SCM发生改变后构建),结果发现用的不是Cron后面有说明
Cron Expression配置说明
1.Cron Expression字符串格式
Cron Expression字符串的格式为“秒 分 小时 日 月 星期 年”,其中“年”是可选的,其余6个字段是必须的,每个字段间用空格隔开,可以用数字表示(数字表示精确匹配),也可以yongoing通配符表示(例如*表示任意数字,?表示由其它字段决定)
2.Cron Expression 取值范围
字段 | 取值范围 | 可接受通配符 |
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日 | 1-31 | , - * / ? L C W |
月 | 1-12 或者JAN-DEC | , - * / |
星期 | 1-7 或者 SUN-SAT(1表示周日,7表示周六) | , - * / ? L C # |
年(可选) | 1970-2099 | , - * / |
3.通配符说明
通配符 | 可用于字段 | 说明 |
? | 日、星期 | 由其它字段确定,比如确定了年月日后星期是固定的,此时必须用? |
* | 所有字段 | 任意数字 |
- | 所有字段 | 表示范围例如MON-FRI表示周一到周五的所有工作日 |
, | 所有字段 | 表示多个值,比如MON,WED,表示周一或周三 |
/ | 所有字段 | 表示数值的增度。例如 1/3表示从1开始,每次递增3,“1,4,7,10...” |
L | 日、星期 | 表示Last,最后一个的意思,代表月末或周六(根据放的位置) |
C | 日、星期 | 表示Calendar,由日历计算出来的日子,5C表示第一天或5号之后;星期中1C代表日历中第一天或周日以后(1表示周日) |
W | 日 | 表示Working Day,工作日;例如15W,表示本月内15日最近的工作日,返回的一定是本月内。 |
# | 星期 | 表示第几个星期几,THU#3,表示第三个星期四,#前面是星期,后面是第几个 |
4.例子
59 59 12 01 01 ? // 精确匹配,表示 1月1日12点59分59秒,星期?
0 0 12 * * ? // 模糊匹配,表示 每天的12点,星期?
0 0 * 01 01 ? // 模糊匹配,表示每年1月1日的每个整点
0 0 0 * * ? 2010 // 模糊匹配,表示2010年每天0时
0 0 * * * ? // 每天每个小时
0 30 10 ? * MON // 每周一上午10:30
0 0 12 ? * MON-FRI // 每个工作日(周一到周五)的12:00
0 0 8 LW * ? // 每月的最后一个工作日8:00
0 0 10 1/2 * ? // 每月1号、3号、5号、7号... 的10:00
0 0 10 ? 11 THU#4 // 每年11月的第四个星期四(感恩节)上午10点
0 0 8,17 * * ? 2009-2015 //2009到2015年每天的8点和17点
0 0 8-17 * * ? 2009-2015 //2009到2015年每天的8点到17点
Jenkins中日期定义
1.字符串格式
Cron表达式字符串的格式为“分 小时 日 月 星期 年”,其中“年”是可选的,其余5个字段是必须的。
区别(1)没有秒 (2)星期的取值范围是0-6(SUN-SAT)
2.取值范围
字段 | 取值范围 | 通配符 |
分 | 0-59 | * / , - |
时 | 0-59 | * / , - |
日 | 1-31 | * / , - ? L W |
月 | 1-12 or JAN-DEC | * / , - |
星期 | 0-6 or SUN-SAT | * / , - ? L # |
年 | 1970–2099 | * / , - |
2.例子
*/5 * * * * // 每5分钟
H/5 * * * * // 每5分钟 推荐
5 * * * * // 每小时的第5分钟
0 8 * * * // 每天8点
0 16,18,20,22 * * * // 每天的16点、18点、20点、22点
0 1,18 * * * // 每天的1点和18点
03 09 * * 1-5 // 工作日(周日到周五)的9点3分
59 23 * * 1-5 或者 @midnight // 工作日(周日到周五)的9点3分
上一篇: 来看看网店转让都能为买卖双方带来啥好处
下一篇: 上海菜特点都有哪些呢?