Cron表达式有两种写法,一种是较精确的七段写法,包含秒、分钟、小时、日、月、星期、年。另一种是五段写法,包含分钟、小时、日、月、星期。
创建定时触发器时,用户能够使用标准的 Cron 表达式的形式自定义何时触发。定时触发器现已推出秒级触发功能,为了兼容老的定时触发器,因此 Cron 表达式有两种写法。
表达式有七个必须字段,以空格分隔。
第一位 | 第二位 | 第三位 | 第四位 | 第五位 | 第六位 | 第七位 |
---|---|---|---|---|---|---|
秒 | 分钟 | 小时 | 日 | 月 | 星期 | 年 |
其中,每个字段都有相应的取值范围:
字段 | 取值范围 | 通配符 |
---|---|---|
秒 | 0 - 59的整数 | , - * / |
分钟 | 0 - 59的整数 | , - * / |
小时 | 0 - 23的整数 | , - * / |
日 | 1 - 31的整数(需要考虑月的天数) | , - * / |
月 | 1 - 12的整数或 JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC | , - * / |
星期 | 0 - 6的整数或 SUN,MON,TUE,WED,THU,FRI,SAT。其中0指周日,1指周一,以此类推 | , - * / |
年 | 1970 - 2099的整数 | , - * / |
表达式有五个必须字段,以空格分隔。
第一位 | 第二位 | 第三位 | 第四位 | 第五位 |
---|---|---|---|---|
分钟 | 小时 | 日 | 月 | 星期 |
其中,每个字段都有相应的取值范围:
字段 | 取值范围 | 通配符 |
---|---|---|
分钟 | 0 - 59的整数 | , - * / |
小时 | 0 - 23的整数 | , - * / |
日 | 1 - 31的整数(需要考虑月的天数) | , - * / |
月 | 1 - 12的整数或 JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC | , - * / |
星期 | 0 - 6的整数或 SUN,MON,TUE,WED,THU,FRI,SAT。其中0指周日,1指周一,以此类推 | , - * / |
通配符 | 含义 |
---|---|
, (逗号) | 代表取用逗号隔开的字符的并集。例如:在“小时”字段中 1,2,3 表示1点、2点和3点 |
-(破折号) | 包含指定范围的所有值。例如:在“日”字段中,1 - 15包含指定月份的1号到15号 |
* (星号) | 表示所有值。在“小时”字段中,* 表示每个小时 |
/ (正斜杠) | 指定增量。在“分钟”字段中,输入1/10以指定从第一分钟开始的每隔十分钟重复。例如,第11分钟、第21分钟和第31分钟,以此类推 |
表达式 | 含义 |
---|---|
*/5 * * * * * * |
表示每5秒触发一次 |
0 15 10 1 * * * |
表示在每月的1日的上午10:15触发 |
0 15 10 * * MON-FRI * |
表示在周一到周五每天上午10:15触发 |
0 0 10,14,16 * * * * |
表示在每天上午10点,下午2点,4点触发 |
0 */30 9-17 * * * * |
表示在每天上午9点到下午5点每半小时触发 |
0 0 12 * * WED * |
表示在每个星期三中午12点触发 |
注意:在 Cron 表达式中的“日”和“星期”字段同时指定值时,两者为“或”关系,即两者的条件分别均生效。