【spring boot】spring boot中使用定時任務配置


spring boot中使用定時任務配置

==================================================================================================================================

首先得創建一個spring boot項目吧,使用idea創建spring boot項目 本博客有教程

【本文完整代碼 可參見 GItHub

==================================================================================================================================

使用步驟如下

【千萬注意:一定要在啟動類添加注解,否則定時任務無效】

1.在啟動類 添加  開啟定時任務 注解@EnableScheduling

 

2.創建定時任務類,使用注解@Component 標注定時任務類,作用是注入為Bean

         使用注解@Scheduled 標注在定時任務方法上, 作用是標注這個方法是執行定時任務的業務邏輯

關於@Scheduled的使用方法,參見后面備注1

 

@Component
public class AutoUpdateDateSchedule {

    @Autowired
    HuaYangService service;

    //每一分鍾執行一次
    @Scheduled(cron = "0 0/1 * * * ?")
    public void dealUpdateTask(){
        System.out.println("定時更新數據庫操作--->開始");

        //只做最簡單的 業務操作
        service.scheduleUpdate();

        System.out.println("定時更新數據庫操作--->結束");
    }

}

 

 

 =========================================================備注1=========================================================================

@Scheduled

1.cron屬性的舉例解析:

Seconds : 可出現", - * /"四個字符,有效范圍為0-59的整數
Minutes : 可出現", - * /"四個字符,有效范圍為0-59的整數
Hours : 可出現", - * /"四個字符,有效范圍為0-23的整數
DayofMonth : 可出現", - * / ? L W C"八個字符,有效范圍為0-31的整數
Month : 可出現", - * /"四個字符,有效范圍為1-12的整數或JAN-DEc
DayofWeek : 可出現", - * / ? L C #"四個字符,有效范圍為1-7的整數或SUN-SAT兩個范圍。1表示星期天,2表示星期一, 依次類推
Year : 可出現", - * /"四個字符,有效范圍為1970-2099年

下面簡單舉幾個例子:

"0 */1 * * * ?"    每隔1分鍾執行一次定時任務
"0 */5 * * * ?"    每隔5分鍾執行一次定時任務


"0 0 12 * * ?"    每天中午十二點觸發
"0 15 10 ? * *"    每天早上10:15觸發
"0 15 10 * * ?"    每天早上10:15觸發
"0 15 10 * * ? *"    每天早上10:15觸發
"0 15 10 * * ? 2005"    2005年的每天早上10:15觸發
"0 * 14 * * ?"    每天從下午2點開始到2點59分每分鍾一次觸發
"0 0/5 14 * * ?"    每天從下午2點開始到2:55分結束每5分鍾一次觸發
"0 0/5 14,18 * * ?"    每天的下午2點至2:55和6點至6點55分兩個時間段內每5分鍾一次觸發
"0 0-5 14 * * ?"    每天14:00至14:05每分鍾一次觸發
"0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44觸發
"0 15 10 ? * MON-FRI"    每個周一、周二、周三、周四、周五的10:15觸發

 

2.fixedRate屬性

用來標志 上次定時任務 和 下次定時任務 之間的延時時長【不管上次的定時任務是否已經執行完成,延時時間一到,立刻執行下次定時任務】【所以如果上一個任務執行之間長於 延時時長,則會發生重復執行的情況】

【毫秒級】【默認-1L】【下面示例為 5秒鍾】

 

3.fixedDelay屬性

用來標志 上次定時任務 和 下次定時任務 之間的延時時長【需要等到上次定時任務執行完成 后,經過延時時長,再執行下次定時任務】

【毫秒級】【默認-1L】【下面示例為 5秒鍾】

 

 4.initialDelay屬性

用來標志,服務啟動后 第一次執行定時任務的延時時長

可以配合上面兩個屬性一起使用

【下面標志: 服務啟動后,過10s執行第一次定時任務,之后每過5s執行一次定時任務】

 


免責聲明!

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



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