Cron表达式
执行定时任务需要给一个时间计划,这个时间计划可以用 Cron 表达式来编写
官方文档 Cron 表达式是一个字符串,是用空格分割的六到七个属性。
语法:秒 分 时 日 月 周 年(可忽略年,Spring 不支持年)
定时任务只能精确到秒
Seconds
:0-59,举例:0 就是整秒执行,1 就是在第1秒的时候执行
Day of week
:值可以写 1-7,也可以写 SUN-SAT,1 就是周日,7 就是周六
特殊字符
,
:枚举
(cron="7,9,23 * * * * ?")
:代表任意时刻的7,9,23秒启动这个任务;
-
:范围
(cron="7-20 * * * * ?")
:任意时刻的 7-20 秒之间,每秒启动一次
*
:任意
- 指定位置的任意时刻都可以
/
:步长
(cron="7/5 * * * * ?")
:第 7 秒启动,每 5 秒一次;(cron="*/5 * * * * ?")
:任意时间启动之后,每 5 秒一次;
?
:(出现在日和周几的位置)为了防止日和周冲突,如果1个精确了,另一个就得写?
(cron="* * * 1 * ?")
:每月的 1 号,启动这个任务,如果两个都写精确值的话,可能会导致冲突,所以其中一个要使用?
L
:(出现在日和周的位置)”,last:最后一个
(cron="* * * ? * 3L")
:每月的最后一个周二
W
: Work Day:工作日
(cron="* * * W * ?")
:每个月的工作日触发(cron="* * * LW * ?")
:每个月的最后一个工作日触发
#
: 第几个
(cron="* * * ? * 5#2")
:5 代表周 4,#2 代表第 2 个,合起来就是每个月的第 2 个周 4