springBoot+mysql整合quartz(拿來即用)


一、首先我們要談及一個定時框架,就是quartz,本片博客涉及的實例主要是運行用了quartz的任務和觸發器的靈活組合以及任務統一靈活的管理的優點

二、quartz中的核心組件:

  1、Job:Job為作業的接口,為任務調度的對象。

  2、JobDetail:用來描述Job實現類及其它相關的靜態信息,如Job名字、關聯監聽器等信息。

  3、Trigger:觸發器,用於定義任務調度的時間規則,其中CronTrigger是使用cron表達式的觸發器,比較常用。cron表達式不太了解的可以自行百度,在這里不多說。

  4、Scheduler:任務調度器,是實際執行任務調度的控制器。每個Scheduler都存有JobDetail和Trigger的注冊,一個Scheduler中可以注冊多個JobDetail和多個Trigger。

三、先不進行數據庫的連接,首先通過實例讓大家明白這幾大組件之間的調用關系

  1、首先自定義一個job的實現類:

        

 

 

   2、整體流程:

  

 

 

   這就是幾大組件之間的關系,其實就是通過JobDetail來描述job的實現類,之后創建觸發器Trigger來制定時間的調度規則,最后將Trigger和JobDetail注冊進scheduler,來進行任務調用的控制。

  此代碼在項目的位置為:

 

 

  代碼gitHub的地址結尾給出

 

  四、定時框架要想和實際項目結合不可以避免的就是需要和mysql進行連接,這樣才可以永久的保存任務,靈活的控制任務,即使項目停止后,再次啟動項目任務仍然可以進行創建,包括任務的暫停或者刪除狀態,都可以實時的監控。

  簡介:幾大組件的關系,上文已經說過了,本實例主要是本人開發方便,也方便大家直接使用,使用的技術為springBoot+mysql+quartz,只是實現了項目啟動的定時任務初始話,以及定時任務添加功能,后期有時間了會進行完善,其他的大家也可以根據工具類ScheduleUtils自行進行調用,不難。

  思路:定時任務和觸發器的注冊不再多說,主要是本項目的定時任務的創建和定時任務的運行。

  首先是定時任務的創建,創建過程中將數據庫中查出的實體類放入jobDetail。

       

 

 

 

  其次是定時任務的運行,是采用獲取bean的形式,之后通過反射獲取對應的方法,並傳入參數。

  

 

 

   大致就是這些,最后附上gitHub源碼地址:https://github.com/SweetPiglet/demo-quartz

 


免責聲明!

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



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