介绍

@Scheduled 注解是 Spring 框架提供的任务调度的注解,可以配置定时任务,或者让某个方法在指定的时间间隔或者特定的时间点上执行。

SpringBoot 项目中,使用 @EnableScheduling 配合 @Scheduled 实现定时任务。

使用

  1. SpringBoot 启动类开启定时任务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.scheduling.annotation.EnableScheduling;

    @SpringBootApplication
    @EnableScheduling
    public class Application {
    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }
  2. 编写定时任务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;

    @Component
    public class ScheduledTasks {

    @Scheduled(配置)
    public void performTask() {
    // 要执行的任务
    }
    }

配置

  • fixedRate:固定速率执行任务
  • fixedDelay:固定延迟执行任务
  • initialDelay:初始延迟时间,与 fixedRate 或 fixedDelay 结合使用
  • cron:基于 Cron 表达式的调度,适用于需要在特定时间点执行的任务

在线 Cron 表达式生成器

在线 Cron 表达式生成器