springBoot 整合Quartz框架


    

一:Quartz框架

  什么是Quartz:Quartz 是 OpenSymphony 開源組織的一個 Java 開源項目, 在 2009 被 Terracotta 收購

  Quartz是做什么的:在某一個規定的時間做某件事情,Quartz就是給一個觸發條件的定義,它就會負責到了時間點(滿足了觸發事件的條件)觸發相應的任務  

  舉例說Quartz可以做的事情(生活中的案例):

     1、每年的生日

     2、每個月的花唄還款

     3、每間隔一個小時,備份自己的學習筆記

  Quartz的特性:

    1、強大的調度功能,例如支持多樣的調度方式

    2、靈活的應用方式,例如支持任務和調度的多種組合方式

    3、分布式和集群功能,Terracotta 在收購后,對原來功能作了進一步提升
  Quartz的主要概念
    1、調度器(Scheduler):Quartz的核心就是調度器,調度器負責管理Quartz應用,運行時環境調度器不是靠自己做所有的工作,而是依賴框架內一些非常重要的部件。為確保可伸縮性,Quartz 采用了基於多線程的架構。啟動時,框架初始化一套 worker 線程,這套線程被調度器用來執行預定的作業。這就是 Quartz 怎樣能並發運行多個作業的原理。Quartz 依賴一套松耦合的線程池管理部件來管理線程環境。
    2、任務(Job):就是我們自己編寫的業務邏輯,交給 quartz 幫我們執行。
    3、觸發器(Trigger):什么時候開始執行,什么時候結束執行,觸發該事件的條件
  Quartz的基本元素之間的關系如下圖所示:
      
  SpringBoot整合Quartz框架:
    基本流程:
      1、首先創建一個maven項目
      2、導入基礎依賴和Quartz的依賴
       

       3、創建一個Quartz的配置類 使用@Configuration注解,這個注解就相當於xml中的標簽,還會用到@bean注解,該相當於標簽,通常二者結合使用

        

      4、編寫一個調度器  

        

 

         調度器中的方法:

          1、fixedDelay 在上一個任務結束之后N秒觸發 單位為毫秒

          

          2、fixedRate  在上一個任務開始之后N秒開始 單位為毫秒

          

 

          3、cron = 復雜的周期調度方式  等號后面是一個表達式  cron=“表達式” 表達式格式:表達式:[秒] [分] [時] [日] [月] [周] [年]  年一般不設置

            

 

          cron表達式中的通配符: 生成通配符的網站:https://qqe2.com/cron

           1、*表示所有值。 例如:在分的字段上設置 *,表示每一分鍾都會觸發。

            2、? 表示不指定值,不需要關心當前設置這個字段的值

            3、- 表示區間。例如 在小時上設置 “10-12”,表示 10,11,12點都會觸發

            4、, 表示指定多個值,例如在周字段上設置 “MON,WED,FRI” 表示周一,周三和周五觸發

            5、/ 用於遞增觸發。0/5 每隔5秒

               6、L 表示最后的意思  W 表示離指定日期的最近那個工作日(周一至周五)

            7、# 序號(表示每月的第幾個周幾),例如在周字段上設置”6#3”表示在每月的第三個周六

 
  


免責聲明!

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



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