cron表达式
cron表达式是用来设置定时任务执行时间的表达式。
cron表达式生成网址:https://www.bejson.com/othertools/cron/
cron表达式由七部分组成,中间由空格分隔,从左到右一次为:* * * * * * *
七个*号分别表示:
- 秒----[0,59]
- 分钟----[0, 59]
- 小时----[0, 23]
- 日期----[1, 31]
- 月份----[1, 12]或[JAN, DEC]
- 星期几----[1, 7]或[MON, SUN]。使用[1, 7]表达方式,
1
代表星期一,7
代表星期日。 - 年份----(一般该项不设置,可以直接忽略掉)
通用特殊字符:* , - /(可以在任意部分使用)
-
表示所有可能值
* * * * * ?
表示:每年每月每天每时每分每秒。
-
,
指定枚举值
1,2,3 * * * * ?
表达:每年每月每天每时每分的第一秒,第二秒,第三秒。
-
定义范围
1-3 * * * * ?
表达:每年每月每天每时每分的第一秒到第三秒。
-
/
每隔多少
5/10 * * * * ?
表示:每年每月每天每时每分,从第五秒开始,每五秒执行一次(0/10 * * * * ?同理,这里可以省略0写为 /10 * * * * ?)
其他特殊字符
-
?
?只可以用在日期和星期部分(日期和时期只要一个设置了值,另外一个就必须设置为?,并且不能同时设置为?)
* * * 2 * ? * * * ? * 2
-
W
只能用在日期中,表示当天中最接近某天的工作日
0 0 0 31W * ?
表示:最接近31号的工作日
-
L
表示最后,只能用在日期和星期中
在日期中,
L
表示月的最后一天。在星期中,L
表示星期的最后一天。0 0 0 ? * L //表示每个星期六 0 0 0 ? * 6L //表示每个月的最后一个星期五
-
只能用在星期中,表示第几个星期几
0 0 0 ? * 6#3 //表示每个月的第三个星期五
在星期中7表示星期六,1表示星期日
使用:
-
在方法所在类或者启动类上面添加开启定时任务注解
@EnableScheduling
-
在方法中使用注解
@Scheduled(cron = "0/5 * * * * ?")