zoukankan      html  css  js  c++  java
  • springboot(五)Scheduling demo

    在项目开发过程中,经常会使用到定时任务(跑批),springboot默认已经实现了,只需要添加相应的注解就可以实现

    在启动类上加入注解,开启定时任务

    @SpringBootApplication
    @EnableScheduling
    public class App {
    
        public static void main(String[] args){
            SpringApplication.run(App.class, args);
        }
    
    }

    创建跑批任务并注册到spring中管理,并在方法上加上跑批注解,配置core表达式

    @Component
    public class SchedulingTask1 {
    
        private int count = 0;
    
        @Scheduled(cron = "*/5 * * * * ?")//每5s执行一次
        public void process(){
            System.out.println("SchedulingTask1 is  "+ count+"times run");
            count++;
        }
    }
    @Component
    public class SchedulingTask2 {
    
        SimpleDateFormat sdf = new SimpleDateFormat ("yyyyMMdd hh:mm:ss");
    
        @Scheduled(fixedRate = 5000)//每5s执行一次
        public void process(){
            System.out.println("process->This time  is  "+ sdf.format(new Date()) +"times run");
        }
    
        @Scheduled(fixedDelay = 10000)//上一次执行完毕时间点之后10秒再执行
        public void process2(){
            System.out.println("process2->This time  is  "+ sdf.format(new Date()) +"times run");
        }
    
        @Scheduled(initialDelay=10000, fixedRate=5000) //第一次延迟10秒后执行,之后按fixedRate的规则每5秒执行一次
        public void process3(){
            System.out.println("process3->This time  is  "+ sdf.format(new Date()) +"times run");
        }
    }

    启动项目即可运行,运行结果:

    process->This time  is  20200510 11:43:37times run
    process2->This time  is  20200510 11:43:37times run
    SchedulingTask1 is  0times run
    process->This time  is  20200510 11:43:42times run
    SchedulingTask1 is  1times run
    process->This time  is  20200510 11:43:47times run
    process3->This time  is  20200510 11:43:47times run
    process2->This time  is  20200510 11:43:47times run
    SchedulingTask1 is  2times run
    process->This time  is  20200510 11:43:52times run
    process3->This time  is  20200510 11:43:52times run
    SchedulingTask1 is  3times run
    process->This time  is  20200510 11:43:57times run
    process3->This time  is  20200510 11:43:57times run
    process2->This time  is  20200510 11:43:57times run
    SchedulingTask1 is  4times run
    process->This time  is  20200510 11:44:02times run
    process3->This time  is  20200510 11:44:02times run
    SchedulingTask1 is  5times run
    process->This time  is  20200510 11:44:07times run
    process3->This time  is  20200510 11:44:07times run
    process2->This time  is  20200510 11:44:07times run
    SchedulingTask1 is  6times run
    process->This time  is  20200510 11:44:12times run
    process3->This time  is  20200510 11:44:12times run
    SchedulingTask1 is  7times run
    process->This time  is  20200510 11:44:17times run
    process3->This time  is  20200510 11:44:17times run
    process2->This time  is  20200510 11:44:17times run
    SchedulingTask1 is  8times run

    常用表达式如下:

    0 * * * * ? 每1分钟执行一次
    0 0 * * * ? 每天每1小时执行一次
    0 0 10 * * ? 每天10点执行一次
    0 * 14 * * ? 在每天下午14点到下午14:59期间的每1分钟执行一次 
    0 30 10 1 * ? 每月1号上午10点30执行一次
    0 10 10 10 * ? 每月10日上午10:10执行一次
    
    */5 * * * * ? 每隔5秒执行一次
    0 */1 * * * ? 每隔1分钟执行一次
    0 0 12-15 * * ? 每天12-15点整点执行一次
    0 0/5 * * * ? 每5分钟执行一次
    0 0-5 15 * * ? 在每天下午15点到下午15:05期间的每1分钟执行一次
    0 0/10 15 * * ? 在每天下午15点到下午15:50期间的每10分钟执行一次
    0 0/10 15,18 * * ? 在每天下午15点到15:50期间和下午18点到18:50期间的每10分钟执行一次
    0 0/30 10-15 * * ? 在每天上午10点到下午15:30每半小时执行一次
    0 0 10,12,14 * * ? 每天上午10点,下午12点,14点执行一次

    表达式生成、解析、反解析地址https://cron.qqe2.com/  https://qqe2.com/cron 示例如下

  • 相关阅读:
    vue状态管理vuex+slot插槽+vue-resource请求
    海豚调度Dolphinscheduler源码分析(三)
    记录一次Curator操作zookeeper的错误
    海豚调度Dolphinscheduler源码分析(二)
    海豚调度DolphinScheduler源码分析(一)
    Java 基础(方法参数的值传递机制)
    Java 基础(匿名对象, 方法重载, 可变个数的形参)
    Java 练习(创建类, 设计类Circle计算圆的面积, 对象数组)
    Java 基础(类中属性与局部变量比较; 方法的分类)
    Java 基础(面向对象; 类和对象)
  • 原文地址:https://www.cnblogs.com/flgb/p/12866344.html
Copyright © 2011-2022 走看看