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的示例代碼的文章就介紹到這瞭,更多相關springboot整合xxl-job內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SpringBoot項目集成xxljob實現全紀錄
- SpringBoot整合Xxl-job實現定時任務的全過程
- xxl-job對比ElasticJob使用示例詳解
- xxl-job如何濫用netty導致的問題及解決方案
- 分佈式任務調度xxl-job問題解決