【Spring Boot实战与进阶】定时任务注解@Scheduled的使用

简介: 定时任务注解@Scheduled的使用
Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。

汇总目录链接:【Spring Boot实战与进阶】学习目录

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、控制台输出

在这里插入图片描述

相关文章
|
21天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
38 0
|
27天前
|
XML Java 数据库连接
spring boot 参数的过滤注解与实战
在Spring Boot应用中,对于入参的过滤,通常会涉及到对Web层的数据验证和处理。Spring Boot借助Spring框架提供了强大的验证框架支持,主要基于JSR-303/JSR-380(Bean Validation API)规范,以及Spring自身的@Valid或@Validated注解来实现请求参数的验证。以下是一些常见的使用案例来展示如何对参数进行过滤和验证。
24 1
|
2天前
|
XML Java C++
【Spring系列】Sping VS Sping Boot区别与联系
【4月更文挑战第2天】Spring系列第一课:Spring Boot 能力介绍及简单实践
23 0
【Spring系列】Sping VS Sping Boot区别与联系
|
6天前
|
XML Java 数据格式
进阶注解探秘:深入Spring高级注解的精髓与实际运用
进阶注解探秘:深入Spring高级注解的精髓与实际运用
22 2
|
6天前
|
XML Java 数据格式
从入门到精通:Spring基础注解的全面解析
从入门到精通:Spring基础注解的全面解析
22 2
从入门到精通:Spring基础注解的全面解析
|
6天前
|
XML Java API
springboot 常用的注解标签的概念及用法RequiredArgsConstructor 、RestController、RequestMapping
【4月更文挑战第12天】在 Spring Boot 中,@RequiredArgsConstructor, @RestController, 和 @RequestMapping 是常用的注解,每个都有其特定的功能和用法,它们合起来极大地简化了 Spring 应用程序的开发过程。
10 2
|
10天前
|
Java 容器
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
SpringBoot使用配置注解开启自动配置功能&整合spring-boot-configuration-processor
12 0
|
Java Spring
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
345 0
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
|
4月前
|
Java Linux 调度
Java【付诸实践 03】Spring定时任务注解@Scheduled+@EnableAsync用法详解(简单说明+应用场景+demo源代码+执行过程分析)
Java【付诸实践 03】Spring定时任务注解@Scheduled+@EnableAsync用法详解(简单说明+应用场景+demo源代码+执行过程分析)
51 2
|
Java API 调度
多线程实现Spring定时任务@Scheduled
多线程实现Spring定时任务@Scheduled