SpringBoot整合QuartZ任務排程

2021-10-01 12:10:14 字數 1714 閱讀 9494

1、quartz的3個基本要素

scheduler:排程器。所有的排程都是由它控制。

trigger: 觸發器。決定什麼時候來執行任務。

jobdetail & job: jobdetail定義的是任務資料,而真正的執行邏輯是在job中。使用jobdetail + job而不是job,這是因為任務是有可能併發執行,如果scheduler直接使用job,就會存在對同乙個job例項併發訪問的問題。而jobdetail & job 方式,sheduler每次執行,都會根據jobdetail建立乙個新的job例項,這樣就可以規避併發訪問的問題。

1、新增quartz依賴

org.quartz-scheduler

quartz

2.2.1

org.springframework

spring-context-support

5.1.4.release

2、注入bean

@configuration

public class quartzconfigration

/*** attention:

* details:配置定時任務的觸發器,也就是什麼時候觸發執行定時任務

*/@bean(name = "jobtrigger")

public crontrigge***ctorybean cronjobtrigger(methodinvokingjobdetailfactorybean jobdetail)

/*** attention:

* details:定義quartz排程工廠

*/@bean(name = "scheduler")

public schedule***ctorybean schedule***ctory(trigger cronjobtrigger)

}

3、資料庫控制

@component

public class schedulerefresh

/*** @description: 每隔5s查庫,並根據查詢結果決定是否重新設定定時任務

* @params:

* @return:

* @auther: wzh

* @date: 2019/12/16 17:00

*/@scheduled(fixedrate = 5000)

public void scheduleupdatecrontrigger() throws schedulerexception else if (state==trigger.triggerstate.paused&&on.equals(searchon))

if(state==trigger.triggerstate.normal&&on.equals(searchon))}}

}

4、具體業務類

@service

public class wsdltask

}

5、quartz中job和trigger的執行狀態

state_blocked 4 阻塞 

state_complete 2 完成 

state_error 3 錯誤 

state_none -1 不存在 

state_normal 0 正常 

state_paused 1 暫停

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...