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