- 定时任务支持的Cron表达式介绍
支持5域的Cron表达式,包括分、时、日、月、星期。
域 | 取值 | 可使用字符 |
分钟 | 0-59 | , - / * |
小时 | 0-23 | , - / * |
日期 | 1-31,一般认为日期和星期在计算上会有冲突,两者需要有一个为? | , - / * ? L W |
月份 | 1-12,1表示1月,以此类推 | , - / * |
星期 | 1-7,1表示星期一,以此类推。 一般认为日期和星期在计算上会有冲突,两者需要有一个为? |
, - * ? / L # |
- 表达式支持多种字符
具体解释如下表:
字符 | 解释 |
* | 域内的每一个值 |
? | 任意某个值 |
- | 表示范围值,比如1-3,表示1,2,3 |
, | 用于分隔多个指定值,如1,2,3 |
/ | 指定增长值,如0/5,表示0,5,10等,最大不超过当前域的最大值 |
L | 表示最后,只在日期和星期这两个域中使用。在星期中,6L表示最后的星期六;在日期中,L表示月份的最后一天,L-1表示月份的倒数第二天,也可以理解为差一天到最后一天。 |
W | 表示weekday工作日,表示星期一到星期五,在日期中,可以使用LW,表示月份的最后一个工作日。3W表示3号,如果3号不是工作日,则会加一天变成4号,如果4号不是工作日,则会减一天为2号,简而言之3W可能表示2、3、4,视3号那一天是不是工作日来定。 |
# | 只能在星期中使用,表示第几个,取值只能是1-5,比如3#5,表示第五个星期三。 |
- 创建Cron定时任务时要注意的事项
- 时区设置问题,为保证国际化,Cron表达式必须按照UTC+0设置。中国的时区是UTC+8,因此需要在您任务执行的小时数上减8处理,如果中国用户想要在每天晚上8点执行任务,则Cron表达式为 0 12 * * ?
- 如果cron表达式第一次执行的日期在定时任务结束日期之后,会提示参数错误。
- 单个cron定时任务一小时限制执行一次
- Cron表达式示例
0 12 * * ? 表示每天的12点
15 10 ? * * 表示每天的10点15分
* 14 * * ? 表示每天的14点的每一分钟
0/5 14,18 * * ? 表示每天14和18点的从0分开始的每5分钟
0-5 14 * * ? 表示每天14点的第1-5分钟
0 12 L-2 * ? 表示每个月倒数第三天的12点
15 10 ? * 6L 表示每个月最后一个星期6的10点15分
15 10 ? * 6#3 表示每个月第三个周六的10点15分