前言quartz 設計有三個核心類,分別是 scheduler(排程器)job(任務)和 trigger (觸發器)
具體需要處理的業務邏輯。
jobdetail
詳細的任務描述,包括名稱,關聯的job,job執行時所需要的引數等。
trigger
任務排程器,描述什麼時候執行job,多久執行一次。
******trigger 設定重複次數,重複執行間隔時長
crontrigger 設定cron表示式
scheduler
排程容器,job與trigger都需要在容器中註冊,被容器統一管理。
cron表示式
*/5 * * * * ? 每隔5秒執行一次
0 */1 * * * ? 每隔1分鐘執行一次
0 0 23 * * ? 每天23點執行一次
0 0 23 ? * * 每天23點執行一次
0 0 23 * * ? * 每天23點執行一次
0 0 23 * * ? 2016 2023年每天23點執行一次
0 0 1 * * ? 每天1點執行一次
0 0 1 1 * ? 每月1號1點執行一次
0 * 14 * * ? 每天14:00點到14:59期間,每隔1分鐘執行一次
0 0-5 14 * * ? 每天14:00點到14:05期間,每隔1分鐘執行一次
0 0 23 l * ? 每月最後一天23點執行一次
0 0 1 ? * l 每週星期六1點執行一次
0 26,29,33 * * * ? 在26分、29分、33分執行一次
0 0 0,13,18,21 * * ? 每天的0點、13點、18點、21點都執行一次
0 0 0 ? * 6#3 每月第3個星期六
依賴
<
!--quartz依賴--
>
org.quartz-scheduler<
/groupid>
quartz<
/artifactid>
2.2.1
<
/version>
<
/dependency>
<
!--scheduler--
>
org.springframework<
/groupid>
spring-context-support<
/artifactid>
<
/dependency>
<
!--spring tx 座標--
>
org.springframework<
/groupid>
spring-tx<
/artifactid>
<
/dependency>
所需要的定時任務的service層放在job類中,quartz就會去執行該任務。
public
class
quartzjob implements job
}
@configuration
public
class
quartzconfig
/** * @description: 建立trigger物件
* @author: x
* @updatetime: 2019/12/9 19:49
*//*@bean
public ******trigge***ctorybean ******trigge***ctorybean(jobdetailfactorybean jobdetailfactorybean) */
/** * @description: 建立cron trigger
* @author: x
* @updatetime: 2019/12/9 19:48
*/@bean
public crontrigge***ctorybean crontrigge***ctorybean
(jobdetailfactorybean jobdetailfactorybean)
/** * @description: 建立scheduler物件
* @author: x
* @updatetime: 2019/12/9 19:48
*/@bean
public schedule***ctorybean schedule***ctorybean
(crontrigge***ctorybean crontrigge***ctorybean, myadaptablejobfactory myadaptablejobfactory)
}
factory.
setjobfactory
(myadaptablejobfactory)
;//重寫adaptablejobfactory後面會有介紹原因
執行程式此時需要注意會產生異常(空指標異常),原因是service層沒有注入進來jobdetailfactorybean例項化job類(quartzjob.class)時沒有將該方法注入到spring容器中。所以重寫adaptablejobfactory方法將例項化的任務物件手動的新增到springioc容器中並完成物件注入。
@component
("myadaptablejobfactory"
)public
class
myadaptablejobfactory extends adaptablejobfactory
}
我的部落格還有你想知道的其他知識,歡迎瀏覽。∩__∩ Spring boot定時任務及整合Quartz
各種企業應用幾乎都會用到任務排程的需求,比如論壇每天凌晨統計使用者的 積分,每隔半個小時生成精華文章 spring boot中使用定時任務 spring boot中使用定時任務只要使用兩個註解 enablescheduling scheduled 在spring boot的啟動類上新增 enable...
springBoot整合dubbo整合專案
傳統spring 整合dubbo,需要繁瑣的編寫一堆堆的 xml 配置檔案 而springboot整合dubbo後,不在需要寫 xml,通過jar包引用,完 成整合,通過註解的形式完成配置。提高我們的開發效率 目錄結構 1 服務層生產者開發 hs ldm server service 1.1新增du...
SpringBoot整合系列 整合Swagger2
io.springfox springfox swagger2 2.7.0 io.springfox springfox swagger ui 2.7.0 一般無配置項,必要時可以新增自定義配置項,在配置類中讀取 swagger2的配置內容僅僅就是需要建立乙個docket例項 configurati...