springboot整合x(chóng)xl-job的示例代碼
關(guān)于xxl-job
在我看來(lái),總體可以分為三大塊:
- 調(diào)度中心
- 執(zhí)行器
- 配置定時(shí)任務(wù)
調(diào)度中心
簡(jiǎn)單來(lái)講就是 xxl-job-admin那個(gè)模塊,配置:
- 從doc里面取出xxl-job.sql的腳本文件,創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù)。
- 進(jìn)行配置文件的配置,如下圖
進(jìn)行日志存放位置的修改
- 然后idea打包之后就能當(dāng)作調(diào)度中心運(yùn)行了
- 訪(fǎng)問(wèn)地址:ip:port/xxl-job-admin 默認(rèn)的賬號(hào)密碼:admin/123456 注意:你進(jìn)去后修改密碼,有些瀏覽器就算你賬號(hào)密碼對(duì)了,可能還是會(huì)顯示密碼錯(cuò)誤,默認(rèn)使用谷歌瀏覽器。
執(zhí)行器
就是我們使用springboot整合x(chóng)xl-job需要編寫(xiě)的代碼。 配置過(guò)程:
1.引入核心依賴(lài),這里使用的是2.2.0
<!-- xxl-job --> <dependency> ? ? <groupId>com.xuxueli</groupId> ? ? <artifactId>xxl-job-core</artifactId> ? ? <version>2.2.0</version> </dependency>
注意:這里的版本與你xxl-job-admin的版本保持一致。
2.配置文件
xxl: ? job: ? ? admin: ? ? ? addresses: http://127.0.0.1:8106/xxl-job-admin ? ? executor: ? ? ? appname: testJob #xxljob配置的執(zhí)行器名稱(chēng), ? ? ? ip: ? ? ? ? ? ? #執(zhí)行器IP,默認(rèn)為空表示自動(dòng)獲取IP ? ? ? port: 9988 #xxljob配置的端口號(hào),默認(rèn)為9999 ? ? ? logpath: ./data/xxl-job/jobhandler ?#執(zhí)行器運(yùn)行日志文件存儲(chǔ)磁盤(pán)路徑 ? ? ? logretentiondays: -1 ?#調(diào)度中心日志表數(shù)據(jù)保存天數(shù),過(guò)期日志自動(dòng)清理;限制大于等于7時(shí)生效,否則, 如-1,關(guān)閉自動(dòng)清理功能 ? ? accessToken: #調(diào)度中心通訊TOKEN [選填]:非空時(shí)啟用
這里ip的獲取,為空可以自動(dòng)獲取,你也可以在調(diào)度中心管理頁(yè)面進(jìn)行手動(dòng)配置。
如果需要使用accessToken,那么就需要在xxl-job-admin的配置文件里進(jìn)行配置對(duì)應(yīng)。
3.編寫(xiě)配置類(lèi)
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; ? /** * @DESC xxl-job配置類(lèi) * @AUTHOR lh * @DATE 2022/6/23 11:41 */ ? @Configuration @Slf4j public class XxlJobConfig { ? @Value("${xxl.job.admin.addresses}") private String adminAddresses; ? @Value("${xxl.job.executor.appname}") private String appName; ? @Value("${xxl.job.executor.ip}") private String ip; ? @Value("${xxl.job.executor.port}") private int port; ? @Value("${xxl.job.accessToken}") private String accessToken; ? @Value("${xxl.job.executor.logpath}") private String logPath; ? @Value("${xxl.job.executor.logretentiondays}") private int logRetentionDays; ? @Bean public XxlJobSpringExecutor xxlJobExecutor() { XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppname(appName); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); ? return xxlJobSpringExecutor; } }
這里需要注意,高版本與低版本的配置類(lèi)略有不同。
4.編寫(xiě)測(cè)試類(lèi)
import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; ? /** ?* @DESC 測(cè)試定時(shí)任務(wù)代碼 ?* @AUTHOR lh ?* @DATE 2022/6/23 11:52 ?*/ @Slf4j @Component public class TestJob { ? ? ? @XxlJob("xxlJobTest") ? ? public ReturnT<String> xxlJobTest(String date) { ? ? ? ? log.info("---------xxlJobTest定時(shí)任務(wù)執(zhí)行成功--------"); ? ? ? ? return ReturnT.SUCCESS; ? ? } }
注意:2.2.0版本,已經(jīng)不支持@JobHandler注解了。 這里的XxlJob與調(diào)度中心的定時(shí)任務(wù)配置相對(duì)應(yīng)。
到此這篇關(guān)于springboot整合x(chóng)xl-job的示例代碼的文章就介紹到這了,更多相關(guān)springboot整合x(chóng)xl-job內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot整合 xxl-job及使用步驟
- springboot整合 xxl-job的項(xiàng)目實(shí)踐
- SpringBoot集成xxl-job實(shí)現(xiàn)超牛的定時(shí)任務(wù)的步驟詳解
- springboot整合x(chóng)xl-job的實(shí)現(xiàn)示例
- xxl-job的部署及springboot集成使用示例詳解
- SpringBoot部署xxl-job方法詳細(xì)講解
- springboot整合x(chóng)xl-job實(shí)現(xiàn)分布式定時(shí)任務(wù)的過(guò)程
- SpringBoot整合Xxl-job實(shí)現(xiàn)定時(shí)任務(wù)的全過(guò)程
- Springboot整合x(chóng)xl-job實(shí)現(xiàn)動(dòng)態(tài)傳參
相關(guān)文章
使用Java程序模擬實(shí)現(xiàn)新冠病毒傳染效果
這篇文章主要介紹了用Java程序模擬實(shí)現(xiàn)新冠病毒傳染效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08springmvc使用@notNull注解驗(yàn)證請(qǐng)求參數(shù)方式
這篇文章主要介紹了springmvc使用@notNull注解驗(yàn)證請(qǐng)求參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>2024-01-01mybatis-plus?執(zhí)行insert(),實(shí)體的id自動(dòng)更新問(wèn)題
這篇文章主要介紹了mybatis-plus?執(zhí)行insert(),實(shí)體的id自動(dòng)更新問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12解決SpringBoot jar包中的文件讀取問(wèn)題實(shí)現(xiàn)
這篇文章主要介紹了解決SpringBoot jar包中的文件讀取問(wèn)題實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Java?Excel?Poi字體顏色自定義設(shè)置代碼
最近項(xiàng)目使用POI按模板導(dǎo)出Excel,需要設(shè)置單元格的字體為紅色,下面這篇文章主要給大家介紹了關(guān)于Java?Excel?Poi字體顏色自定義設(shè)置的相關(guān)資料,需要的朋友可以參考下2024-01-01Springboot中配置Mail和普通mail的實(shí)現(xiàn)方式
這篇文章主要介紹了Springboot中配置Mail和普通mail的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解
這篇文章主要介紹了Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12