springboot 定時器 Schdule


定時器:定時啟動任務,執行代碼

1、在啟動類中加入注解:

 

2、創建一個類,並且在這個類上加入注解:@Component

3、定義一個方法,在方法上加入注解:@Scheduled(cron="0 0 0 * * ?"),參數cron里面的具體參數是代表每天凌晨00:00分執行一次

4、reportCurrent(){

//邏輯

}

 5:參數說明

定時器的一些參數說明:

@Scheduled(cron=””)

1、  cron表達式:指定任務在特定時間執行

2、  fixedDelay:表示上一次任務執行完成后多久再執行,參數類型long,單位:ms  

3、  fixedDelayString:與fixedDelay一樣,只是參數類型是String

4、  fixedRate:表示按一定的頻率執行任務,參數類型long,單位:ms    如: fixedRate(5000),表示這個定時器任務沒5秒執行一次

5、  fixedRateString:與fixedRate一樣,只是參數類型變為String

6、  initialDelay:表示延遲多久再第一次執行任務,參數類型為long ,單位:ms

7、  initialDelayString:與initialDelay一樣,只是參數類型String

 

cron參數詳解:共6個參數域(秒 分 時 每月第幾天 月 星期)

(1)、每個域支持的字符類型

秒:可出現 “ , - * /”四個字符串,有效范圍為0-59的整數

分:可出現“, - * / ”四個字符串,有效范圍0-59的整數

時:可出現“, - * /”四個字符串,有效范圍是0-23的整數

每月第幾天:可出現“,- * / ? L W C ”八個字符串,有效范圍是0-31

月:可出現", - * /"四個字符,有效范圍為1-12的整數或JAN-DEc  

星期:可出現", - * / ? L C #"四個字符,有效范圍為1-7的整數或SUN-SAT兩個范圍。1表示星期天,2表示星期一, 依次類推

 

(2)、特殊字符含義

* : 表示匹配該域的任意值,比如在秒*, 就表示每秒都會觸發事件。;

 

    ? : 只能用在每月第幾天和星期兩個域。表示不指定值,當2個子表達式其中之一被指定了值以后,為了避免沖突,需要將另一個子表達式的值設為“?”;

 

    - : 表示范圍,例如在分域使用5-20,表示從5分到20分鍾每分鍾觸發一次 

 

    / : 表示起始時間開始觸發,然后每隔固定時間觸發一次,例如在分域使用5/20,則意味着5分,25分,45分,分別觸發一次. 

 

    , : 表示列出枚舉值。例如:在分域使用5,20,則意味着在5和20分時觸發一次。 

 

    L : 表示最后,只能出現在星期和每月第幾天域,如果在星期域使用1L,意味着在最后的一個星期日觸發。 

 

    W : 表示有效工作日(周一到周五),只能出現在每月第幾日域,系統將在離指定日期的最近的有效工作日觸發事件。注意一點,W的最近尋找不會跨過月份 

 

    LW : 這兩個字符可以連用,表示在某個月最后一個工作日,即最后一個星期五。 

 

# : 用於確定每個月第幾個星期幾,只能出現在每月第幾天域。例如在1#3,表示某月的第三個星期日。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM