SpringBoot慕课学习-SpringBoot开发常用技术整合-定时任务

SpringBoot定时任务

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息。Spring为我们提供了异步执行任务调度的方式,提供TaskExecutor 、TaskScheduler 接口。

1. 启动类添加@EnableScheduling注解

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

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

2.建立定时任务,使用@Component注解

@Component
public class TestTask {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
    
    //定义每过3秒执行任务
    @Scheduled(fixedRate = 3000)
    public void reportCurrentTime() {
        System.out.println(dateFormat.format(new Date()));
    }
}

 定时任务表达式

 @Scheduled(cron = "")

cron支持6位

表达式参考网址 cron.qqe2.com

如: @Scheduled(cron = "0/5 * * * * ? ")

0和7都代表周日

second(秒),minute(分),hour(时),day of month(日),month(月),day of week(周几).
0 * * * * MON-FRI
【0 0/5 14,18 * * ?】每天14点整,和18点整,每隔5分钟执行一次
【0 15 18 ? * 1-6】每个月的周一至周六18:15分执行一次
【0 0 2 ? * 6L】每个月的最后一个周六凌晨2点执行一次
【0 0 0 LW * ?】每个月的最后一个工作日凌晨2点执行一次
【0 0 2-4 ? * 1#1】每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次;

原文地址:https://www.cnblogs.com/bigorang/p/9593903.html