zoukankan      html  css  js  c++  java
  • SpringBoot 定时任务@EnableScheduling

    一、@EnableScheduling 使用在启动类上

    写一个springboot的启动类:

    启动类里面使用@EnableScheduling 注解开启功能,自动扫描

    @SpringBootApplication
    @EnableScheduling //开启定时任务
    public class MainApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MainApplication.class, args);
        }
    }

    二、在任务的类上写@Component,在任务方法上写@Scheduled

    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    import java.util.Date;
    
    /**
     * @ClassName Jobs
     * @Author jeffrey
     * @Description Jobs
     **/
    
    @Component
    public class Jobs {
        //表示方法执行完成后5秒
        @Scheduled(fixedDelay = 5000)
        public void fixedDelayJob() throws InterruptedException {
            System.out.println("fixedDelay 每隔5秒" + new Date());
        }
    
        //表示每隔3秒
        @Scheduled(fixedRate = 3000)
        public void fixedRateJob() {
    
            System.out.println("fixedRate 每隔3秒" + new Date());
        }
    
        //表示每天8时30分0秒执行
        @Scheduled(cron = "0 0,30 0,8 ? * ? ")
        public void cronJob() {
            System.out.println(new Date() + " ...>>cron....");
        }
    }

    三、总结

    • fixedDelay和fixedRate,单位是毫秒,这里这里就是5秒和3秒,它们的区别就是:fixedRate就是每多次分钟一次,不论你业务执行花费了多少时间。我都是1分钟执行1次,而fixedDelay是当任务执行完毕后1分钟在执行。所以根据实际业务不同,我们会选择不同的方式。
    • cron表达式:比如你要设置每天什么时候执行,就可以用它
      cron表达式,有专门的语法,而且感觉有点绕人,不过简单来说,大家记住一些常用的用法即可,特殊的语法可以单独去查。
      cron一共有7位,但是最后一位是年,可以留空,所以我们可以写6位:
    • * 第一位,表示秒,取值0-59
      * 第二位,表示分,取值0-59
      * 第三位,表示小时,取值0-23
      * 第四位,日期天/日,取值1-31
      * 第五位,日期月份,取值1-12
      * 第六位,星期,取值1-7,星期一,星期二...,注:不是第1周,第二周的意思
                另外:1表示星期天,2表示星期一。
      * 第7为,年份,可以留空,取值1970-2099

    原文链接

    作者:jeffrey_hjf
    链接:https://www.jianshu.com/p/9d18039c0f08
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    LeetCode Find Duplicate File in System
    LeetCode 681. Next Closest Time
    LeetCode 678. Valid Parenthesis String
    LeetCode 616. Add Bold Tag in String
    LeetCode 639. Decode Ways II
    LeetCode 536. Construct Binary Tree from String
    LeetCode 539. Minimum Time Difference
    LeetCode 635. Design Log Storage System
    LeetCode Split Concatenated Strings
    LeetCode 696. Count Binary Substrings
  • 原文地址:https://www.cnblogs.com/frankcui/p/15670418.html
Copyright © 2011-2022 走看看