springboot怎么整合xxl-job
本文小編為大家詳細介紹“springboot怎么整合xxl-job”,內容詳細,步驟清晰,細節處理妥當,希望這篇“springboot怎么整合xxl-job”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
關于xxl-job
在我看來,總體可以分為三大塊:
調度中心
執行器
配置定時任務
調度中心
簡單來講就是 xxl-job-admin那個模塊,配置:
從doc里面取出xxl-job.sql的腳本文件,創建對應的數據庫。
進行配置文件的配置,如下圖
進行日志存放位置的修改
然后idea打包之后就能當作調度中心運行了
訪問地址:ip:port/xxl-job-admin 默認的賬號密碼:admin/123456 注意:你進去后修改密碼,有些瀏覽器就算你賬號密碼對了,可能還是會顯示密碼錯誤,默認使用谷歌瀏覽器。
執行器
就是我們使用springboot整合xxl-job需要編寫的代碼。 配置過程:
1.引入核心依賴,這里使用的是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配置的執行器名稱, ??????ip:?????????????#執行器IP,默認為空表示自動獲取IP ??????port:?9988?#xxljob配置的端口號,默認為9999 ??????logpath:?./data/xxl-job/jobhandler??#執行器運行日志文件存儲磁盤路徑 ??????logretentiondays:?-1??#調度中心日志表數據保存天數,過期日志自動清理;限制大于等于7時生效,否則,?如-1,關閉自動清理功能 ????accessToken:?#調度中心通訊TOKEN?[選填]:非空時啟用
這里ip的獲取,為空可以自動獲取,你也可以在調度中心管理頁面進行手動配置。
如果需要使用accessToken,那么就需要在xxl-job-admin的配置文件里進行配置對應。
3.編寫配置類
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配置類 ?*?@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; ????} }
這里需要注意,高版本與低版本的配置類略有不同。
4.編寫測試類
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?測試定時任務代碼 ?*?@AUTHOR?lh ?*?@DATE?2022/6/23?11:52 ?*/ @Slf4j @Component public?class?TestJob?{ ????@XxlJob("xxlJobTest") ????public?ReturnT<String>?xxlJobTest(String?date)?{ ????????log.info("---------xxlJobTest定時任務執行成功--------"); ????????return?ReturnT.SUCCESS; ????} }
注意:2.2.0版本,已經不支持@JobHandler注解了。 這里的XxlJob與調度中心的定時任務配置相對應。
讀到這里,這篇“springboot怎么整合xxl-job”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注蝸牛博客行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。
評論