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分

 

 

 

 

 

 

 

你可能感兴趣的:(cron,cron表达式,quartz,jenkins)