springboot整合xxl-job的示例代碼
關于xxl-job
在我看來,總體可以分為三大塊:
- 調度中心
- 執(zhí)行器
- 配置定時任務
調度中心
簡單來講就是 xxl-job-admin那個模塊,配置:
- 從doc里面取出xxl-job.sql的腳本文件,創(chuàng)建對應的數據庫。
- 進行配置文件的配置,如下圖
進行日志存放位置的修改
- 然后idea打包之后就能當作調度中心運行了
- 訪問地址:ip:port/xxl-job-admin 默認的賬號密碼:admin/123456 注意:你進去后修改密碼,有些瀏覽器就算你賬號密碼對了,可能還是會顯示密碼錯誤,默認使用谷歌瀏覽器。
執(zhí)行器
就是我們使用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配置的執(zhí)行器名稱, ? ? ? ip: ? ? ? ? ? ? #執(zhí)行器IP,默認為空表示自動獲取IP ? ? ? port: 9988 #xxljob配置的端口號,默認為9999 ? ? ? logpath: ./data/xxl-job/jobhandler ?#執(zhí)行器運行日志文件存儲磁盤路徑 ? ? ? 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定時任務執(zhí)行成功--------"); ? ? ? ? return ReturnT.SUCCESS; ? ? } }
注意:2.2.0版本,已經不支持@JobHandler注解了。 這里的XxlJob與調度中心的定時任務配置相對應。
到此這篇關于springboot整合xxl-job的示例代碼的文章就介紹到這了,更多相關springboot整合xxl-job內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis-plus?執(zhí)行insert(),實體的id自動更新問題
這篇文章主要介紹了mybatis-plus?執(zhí)行insert(),實體的id自動更新問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12解決SpringBoot jar包中的文件讀取問題實現(xiàn)
這篇文章主要介紹了解決SpringBoot jar包中的文件讀取問題實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08Springboot中配置Mail和普通mail的實現(xiàn)方式
這篇文章主要介紹了Springboot中配置Mail和普通mail的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03Java 使用IO流實現(xiàn)大文件的分割與合并實例詳解
這篇文章主要介紹了Java 使用IO流實現(xiàn)大文件的分割與合并實例詳解的相關資料,需要的朋友可以參考下2016-12-12