zoukankan      html  css  js  c++  java
  • 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点期间,每个整点都执行一次;

  • 相关阅读:
    看美剧学英语 | Jeff Winger's speech in Community
    学习笔记 | Coursera
    学习笔记 | Coursera
    Python: How to reverse a list in python
    公司接口流程
    使用Supervisor管理Django应用进程
    orm中 如何模糊匹配某一年的用户和某一事时间段的用户
    Linux如何查看进程是否存活
    项目中有 xxxx 不能被json序列化
    关于项目经验
  • 原文地址:https://www.cnblogs.com/bigorang/p/9593903.html
Copyright © 2011-2022 走看看