使用CRON表达式
使用CRON表达式
CRON表达式是一种时间表达式,用于在自动化平台中指定调度的执行时间。它由六个或七个字段组成,秒 (Seconds)、分 (Minutes)、小时 (Hours)、日期 (Day of Month)、月份 (Month)、星期 (Day of Week)、年 (Year)。
在 控制台 中,CRON 表达式基于使用后台任务的内部计划库,在“时间调度”中,使用“高级”选项创建时间触发器时需要用到这类表达式:
CRON表达式中的每个字段都有一个指定的值范围和特殊字符,可用于创建计划,如下所述:
字段 | 范围值 | 允许的特殊字符 |
---|---|---|
秒 (Seconds) | 0~59的整数 | , - * / 四个字符 |
分 (Minutes) | 0~59的整数 | , - * / 四个字符 |
小时 (Hours) | 0~23的整数 | , - * / 四个字符 |
日期 (Day of Month) | 1~31的整数(需要考虑实际天数) | ,- * ? / L W 七个字符 |
月份 (Month) | 1~12的整数 | , - * / 四个字符 |
星期 (Day of Week) | 1~7的整数 | , - * ? / L # 七个字符 |
年 (Year) | 1970+ | , - * / 四个字符 |
可用特殊字符的含义和用法如下所示:
字符 | 描述 | 示例 |
---|---|---|
* | 用于表示匹配该域的任意值 如果在Minutes域使用该字符则表示每分钟都会触发事件 | 0 * * ? * * 指每分钟的0秒执行一次 |
? | 只能在日期 (DayofMonth)和星期 (Day of Week)中使用 它被用来指定“非明确的值”,日期 (Day of Month)和星期 (Day of Week)是排斥的 | 0 0 0 1 5 ? 指在5月的1日0点执行一次 |
- | 用于表示指定一个范围 | 0 0 0 1,5 5 ? 指在5月的1,2,3,4,5日的0时的 0分0秒执行一次 |
, | 用于表示指定几个散列值 | 0 0 0 1,2 5 ? 指在5月的1,2日的0时0分0秒执行一次 |
/ | 用于表示给定字段的增量 | 10 10 2/3 ? * 2/7 指在每周一从2点开始,每隔3小时 的10分10秒执行一次 |
L | 只能出现在日期 (DayofMonth)和星期 (DayofWeek)域,日期 (DayofMonth)域中 表示一个月的最后一天,星期 (DayofWeek)域则表示7或者SAT | 0 0 0 ? 5 L 指在5月的每周最后一天执行 |
W | 用于表示有效工作日,只能出现在日期 (DayofMonth)域。 这个字符用于指定日期的最近工作日。 “W”字符指定的最近工作日是不能够跨月份的,只能配合一个单独的数值使用, 不能是一个数字段 | 0 0 0 10W 5 ? 指在5月距离10日最近的 一个工作日执行一次 |
LW | L和W可以在日期域中联合使用,LW表示这个月最后一周的工作日 | 0 0 0 0 LW ? 指在每月最后一周的工作日执行一次 |
# | 用于确定每个月第几个星期几,只能出现在月 (Day of Month)域 | 0 0 0 ? * 5#2 指在每月第二周的周四执行一次 |