zoukankan      html  css  js  c++  java
  • Spring @Scheduled定时任务的fixedRate,fixedDelay,cron的作用和不同

    一.   三种定时类型。

    1.cron  --@Scheduled(cron="0/5 * * * *?")

       当时间达到设置的时间会触发事件。上面那个例子会每5秒执行一次。

    • 2018/1/4 14:27:30
    • 2018/1/4 14:27:35
    • 2018/1/4 14:27:40
    • 2018/1/4 14:27:45
    • 2018/1/4 14:27:50
    2.fixedRate --@Scheduled(fixedRate=2000
     每两秒执行一次时间。
    3.fixedDelay --@Scheduled(fixedDelay=2000
     每次任务执行完之后的2s后继续执行
     

    看字面意思容易理解,但是任务执行长度超过周期会怎样呢?

    不多说,直接上图:


     

    import java.text.DateFormat;  
    import java.text.SimpleDateFormat;  
    import java.util.Date;  
      
      
    import org.springframework.scheduling.annotation.Scheduled;  
    import org.springframework.stereotype.Component;  
      
      
    @Component  
    public class MyProcessor{  
          
        DateFormat sdf = new SimpleDateFormat("HH:mm:ss");  
          
        int[] delays = new int[]{8,3,6,2,2};  
        int index = 0;  
          
        @Scheduled(cron = "0/5 * * * * ?}")  
        public void process() {  
            try {  
                if(index > delays.length - 1){  
                    if(index == delays.length){  
                        System.out.println("---------- test end at " + sdf.format(new Date()) + " ---------");  
                    }  
                    index ++;  
                    return;  
                }else{  
                    System.out.println(index + ":start run at" + sdf.format(new Date()));  
                }  
                Thread.sleep(delays[index] * 1000);  
                System.out.println(index + ":end run at " + sdf.format(new Date()));  
                index ++;   
            } catch (InterruptedException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
  • 相关阅读:
    学习进度三
    开课博客之个人介绍
    个人作业--数组
    学习进度二
    开学第一次测试
    实现点击不同的按钮加载不同的css
    Web存储
    HTML5(常用的表单控件)
    JS(获得当前时间并且用2015-01-01格式表示)
    JS(event事件)
  • 原文地址:https://www.cnblogs.com/zouhong/p/11332126.html
Copyright © 2011-2022 走看看