【Spring Boot架构】定时任务注解@Scheduled的使用
程序员文章站
2022-05-01 16:27:42
...
1、cron 表达式
格式: [秒] [分] [小时] [日] [月] [周] [年]
key | 释义 |
---|---|
秒 | (0~59) |
分钟 | (0~59) |
小时 | (0~23) |
天 | (0~31) |
月 | (0~11) |
星期 | (1~7,SUN,MON,TUE,WED,THU,FRI,SAT) |
年 | (1970-2099) |
2、特殊字符的含义
key | 释义 |
---|---|
* | 代表所有可能得值,在(月)中表示每个月,在(天)中表示一星期的每一天 |
/ | 代表指定数值的增量,0/15在(分钟)中表示从第0分钟开始,每15分钟 |
? | 仅被用于天(月)和天(星期),表示不指定值,当这两个其中之一被指定了值之后,为了避免冲突,需要将另一个表达式的值设定为"?" |
L | 仅被用于天(月)和天(星期),是单词"Last"的缩写, 在天(月)中表示一个月的最后一天,在天(星期)中表示一个星期的最后一天,也就是周六 |
- | 表示一个范围 |
, | 表示一个列表值 |
3、举例
key | 释义 |
---|---|
0 0 6 * * ? | 每天6点触发 |
0 30 6 * * ? | 每天6点30分触发 |
0 30 6 * * ? 2019 | 2019年每天6点30触发 |
0 10/15 6 * * ? | 每天6点的 10分,25分,40分,55分这几个时间点执行 |
0 * 9 * * ? | 每天9点到9点59分每分触发 |
0 0/5 9 * * ? | 每天9点到9点59分(整点开始,每隔5分触发) |
0 0/5 9,10 * * ? | 每天9点到10点59分(整点开始,每隔5分触发) |
0 0-5 9 * * ? | 每天9点到9点05分每分触发 |
0 15 8 ? 11 MON-FRI | 从周一到周五每天8点15分触发 |
0 0 18 15 * ? | 每月15号18点触发 |
0 0 18 L * ? | 每月最后一天的18点触发 |
0 30 6 ? * 1 | 每周星期天,6点30分触发 |
0 30 6 ? * 6L | 每月最后一周的星期五的6点30分触发 |
0 10 3 ? * 1#3 | 每个月的第三个星期天触发,#号只能出现在星期的位置 |
0 14 13 20 5 ? | 每年的5月20号 13点14分触发 |
4、Spring Boot项目中如何使用
SpringBoot的启动类上添加@EnableScheduling,此注解的作用是发现注解@Scheduled的任务并后台执行。(或者添加在定时任务类上也可以)
@SpringBootApplication
@EnableScheduling
public class BootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(BootdemoApplication.class, args);
}
}
5、ScheduleTask 定时任务测试类
@Component
public class ScheduleTask {
// 每隔10秒执行一次
@Scheduled(cron = "0/10 * * * * ?")
public void print() {
System.out.println("每隔10秒执行一次:" + new Date());
}
}
6、控制台输出
下一篇: vue实现验证码倒计时功能
推荐阅读
-
Spring Boot @Scheduled定时任务代码实例解析
-
spring boot使用自定义的线程池执行Async任务
-
java使用@Scheduled注解执行定时任务
-
Spring Boot+Quartz实现一个实时管理的定时任务
-
Spring Boot实现简单的定时任务
-
SpringBoot 定时器注解版的使用@Scheduled(cron = “0 0 0 * * * “)
-
【Spring】Spring的定时任务注解@Scheduled原来如此简单
-
Spring Boot与Kotlin定时任务的示例(Scheduling Tasks)
-
spring boot中关于获取配置文件注解的使用@ConfigurationProperties、@Value、@PropertySource
-
Spring Boot中配置定时任务、线程池与多线程池执行的方法