SpringCloud如何引用xxjob定時(shí)任務(wù)
SpringClout 引用 xxjob定時(shí)任務(wù)
下載源碼
分布式任務(wù)調(diào)度平臺(tái)XXL-JOB-官網(wǎng)地址
源碼地址
組成部分
調(diào)度中心
作用:統(tǒng)一管理任務(wù)調(diào)度平臺(tái)上調(diào)度任務(wù),負(fù)責(zé)觸發(fā)調(diào)度執(zhí)行,并且提供任務(wù)管理平臺(tái)。
公共依賴
xxl-job-core
執(zhí)行器
作用:負(fù)責(zé)接收“調(diào)度中心”的調(diào)度并執(zhí)行;可直接部署執(zhí)行器,也可以將執(zhí)行器集成到現(xiàn)有業(yè)務(wù)項(xiàng)目中。
調(diào)度中心使用步驟
修改調(diào)度中心配置
位置:/xxl-job/xxl-job-admin/src/main/resources/application.properties
配置解釋
### 調(diào)度中心JDBC鏈接:鏈接地址請(qǐng)保持和 2.1章節(jié) 所創(chuàng)建的調(diào)度數(shù)據(jù)庫(kù)的地址一致 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root_pwd spring.datasource.driver-class-name=com.mysql.jdbc.Driver ### 報(bào)警郵箱 spring.mail.host=smtp.qq.com spring.mail.port=25 spring.mail.username=xxx@qq.com spring.mail.password=xxx spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory ### 調(diào)度中心通訊TOKEN [選填]:非空時(shí)啟用; xxl.job.accessToken= ### 調(diào)度中心國(guó)際化配置 [必填]: 默認(rèn)為 "zh_CN"/中文簡(jiǎn)體, 可選范圍為 "zh_CN"/中文簡(jiǎn)體, "zh_TC"/中文繁體 and "en"/英文; xxl.job.i18n=zh_CN ## 調(diào)度線程池最大線程配置【必填】 xxl.job.triggerpool.fast.max=200 xxl.job.triggerpool.slow.max=100 ### 調(diào)度中心日志表數(shù)據(jù)保存天數(shù) [必填]:過期日志自動(dòng)清理;限制大于等于7時(shí)生效,否則, 如-1,關(guān)閉自動(dòng)清理功能; xxl.job.logretentiondays=30
啟動(dòng)驗(yàn)證
1.啟動(dòng)類啟動(dòng)
2.登錄網(wǎng)址:http://localhost:8080/xxl-job-admin/jobinfo
3.admin 123456 (登錄密碼也可在數(shù)據(jù)庫(kù)中自定義)
執(zhí)行器使用步驟
修改執(zhí)行器配置
1.引入依賴
<!-- xxl-job-core --> <dependency> <groupId>com.lazzen.cloud</groupId> <artifactId>cloud-xxl-job-core</artifactId> </dependency>
2.修改配置
#調(diào)度中心部署跟地址 [選填]:如調(diào)度中心集群部署存在多個(gè)地址則用逗號(hào)分隔。執(zhí)行器將會(huì)使用該地址進(jìn)行"執(zhí)行器心跳注冊(cè)"和"任務(wù)結(jié)果回調(diào)";為空則關(guān)閉自動(dòng)注冊(cè); xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin #執(zhí)行器通訊TOKEN [選填]:非空時(shí)啟用; xxl.job.accessToken= #執(zhí)行器AppName [選填]:執(zhí)行器心跳注冊(cè)分組依據(jù);為空則關(guān)閉自動(dòng)注冊(cè) xxl.job.executor.appname=xxl-job-executor-sample #執(zhí)行器注冊(cè) [選填]:優(yōu)先使用該配置作為注冊(cè)地址,為空時(shí)使用內(nèi)嵌服務(wù) ”IP:PORT“ 作為注冊(cè)地址。從而更靈活的支持容器類型執(zhí)行器動(dòng)態(tài)IP和動(dòng)態(tài)映射端口問題。 xxl.job.executor.address= #執(zhí)行器IP [選填]:默認(rèn)為空表示自動(dòng)獲取IP,多網(wǎng)卡時(shí)可手動(dòng)設(shè)置指定IP,該IP不會(huì)綁定Host僅作為通訊實(shí)用;地址信息用于 "執(zhí)行器注冊(cè)" 和 "調(diào)度中心請(qǐng)求并觸發(fā)任務(wù)"; xxl.job.executor.ip= #執(zhí)行器端口號(hào) [選填]:小于等于0則自動(dòng)獲??;默認(rèn)端口為9999,單機(jī)部署多個(gè)執(zhí)行器時(shí),注意要配置不同執(zhí)行器端口; xxl.job.executor.port=9999 #執(zhí)行器運(yùn)行日志文件存儲(chǔ)磁盤路徑 [選填] :需要對(duì)該路徑擁有讀寫權(quán)限;為空則使用默認(rèn)路徑; xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler #執(zhí)行器日志文件保存天數(shù) [選填] : 過期日志自動(dòng)清理, 限制值大于等于3時(shí)生效; 否則, 如-1, 關(guān)閉自動(dòng)清理功能; xxl.job.executor.logretentiondays=30
執(zhí)行器組件配置
執(zhí)行器組件,配置文件地址:XxlJobConfig.java
@Bean public XxlJobSpringExecutor xxlJobExecutor() { logger.info(">>>>>>>>>>> xxl-job config init."); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppname(appname); xxlJobSpringExecutor.setAddress(address); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor; }
啟動(dòng)
創(chuàng)建定時(shí)任務(wù)
創(chuàng)建任務(wù)代碼
此處的業(yè)務(wù)邏輯就遵循三層架構(gòu)沒有什么特別之處
@Slf4j @Component @AllArgsConstructor public class xxjobTest { private final OamTimingAirconditionService oamTimingAirconditionService; /** * 定時(shí)分合閘處理器 */ @XxlJob("demoJobHandler") public void lightingGateway() { XxlJobHelper.log("定時(shí)任務(wù)開始執(zhí)行....."); // 讀取參數(shù) String param = XxlJobHelper.getJobParam(); if (param == null || param.trim().isEmpty()) { // 參數(shù)錯(cuò)誤 XxlJobHelper.log("param[" + param + "] invalid."); XxlJobHelper.handleFail(); return; } try { // 業(yè)務(wù)邏輯 XxlJobHelper.handleSuccess(); } catch (Exception ex) { log.error(ex.getMessage(), ex); XxlJobHelper.log(ex); XxlJobHelper.handleFail(); }finally { DynamicDataSourceExt.clearCustomIdThreadLocal(); } XxlJobHelper.log("定時(shí)任務(wù)執(zhí)行結(jié)束!"); } }
附加已有項(xiàng)目調(diào)用xxjob API
到此這篇關(guān)于SpringCloudt 引用 xxjob定時(shí)任務(wù)的文章就介紹到這了,更多相關(guān)SpringCloud xxjob定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解spring boot整合JMS(ActiveMQ實(shí)現(xiàn))
本篇文章主要介紹了詳解spring boot整合JMS(ActiveMQ實(shí)現(xiàn)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10java實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲(1)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01SpringBoot集成Swagger構(gòu)建api文檔的操作
這篇文章主要介紹了SpringBoot集成Swagger構(gòu)建api文檔的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Java反射機(jī)制詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java 反射機(jī)制。通俗來講呢,就是在運(yùn)行狀態(tài)中,我們可以根據(jù)“類的部分已經(jīng)的信息”來還原“類的全部的信息”。這篇文章給大家詳細(xì)介紹了java反射機(jī)制的知識(shí),感興趣的朋友一起看看吧2017-06-06Java多線程使用阻塞隊(duì)列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型詳解
這篇文章主要介紹了Java多線程使用阻塞隊(duì)列實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型詳解,主要講解阻塞隊(duì)列的特性、實(shí)際開發(fā)中常用的到的生產(chǎn)者消費(fèi)者模型,以及生產(chǎn)者消費(fèi)者模型解耦合、削峰填谷的好處,需要的朋友可以參考下2023-07-07tomcat目錄結(jié)構(gòu)簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了tomcat目錄結(jié)構(gòu)簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下2017-07-07Java?設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解原型模式
原型模式是用于創(chuàng)建重復(fù)的對(duì)象,同時(shí)又能保證性能。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式,今天通過本文給大家介紹下Java 原型設(shè)計(jì)模式,感興趣的朋友一起看看吧2022-04-04