SpringBoot定时任务

本文介绍了SpringBoot中如何实现定时任务,包括基于注解@Scheduled的静态定时任务和基于接口SchedulingConfigurer的动态定时任务。详细讲解了@Scheduled的参数和cron表达式的使用,提供了多个cron表达式实例。
摘要由CSDN通过智能技术生成

一、概述

      (1)SpringBoot定时任务通常来讲就是给程序设定一个时间让它在指定时间运行。

      (2)要开启定时任务,只需在SpringBoot中做几个简单的配置

二、案例一:基于注解@Scheduled(静态的)

  基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响。

【1】创建一个SpringBoot程序,这里我使用的是SpringBoot 2.3.3版本

【2】在SpringBoot的启动类上配置@EnableScheduling开启定时任务

@SpringBootApplication
@EnableScheduling  // 开启定时任务
public class Demo02Application {

    public static void main(String[] args) {
        SpringApplication.run(Demo02Application.class, args);
    }

}

【3】创建一个Spring的配置类,写一个定时方法

@Configuration      //标记配置类
public class StaticScheduleTask {
    //添加定时任务
    @Scheduled(cron = "0/3 * * * * ?")
    //或直接指定时间间隔,例如:每3秒执行一次
    //@Scheduled(fixedRate=3000)
    private void configureTasks() {
        System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
    }
}

【4】控制台打印

这里可以看到,每隔三秒,定时任务就会执行一次,但是我们要改变执行时间时,需要重启程序。

三、案例二:基于接口SchedulingConfigurer(动态的)

【1】pom.xml中添加依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
<!--添加MySql依赖 -->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mys
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值