三分鐘搞定 XXL-JOB 分布式任務(wù)調(diào)度平臺
前言
XXL-JOB是一個輕量級分布式任務(wù)調(diào)度平臺,其核心設(shè)計目標是開發(fā)迅速、學(xué)習(xí)簡單、輕量級、易擴展。現(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。
可以前往Gitee地址進行下載使用。
https://gitee.com/xuxueli0323/xxl-job.git

xxl-job-admin搭建
拉取代碼
代碼結(jié)構(gòu)如下:

運行SQL文件至本地數(shù)據(jù)庫

修改xxl-job-admin模塊的yml文件

啟動任務(wù)調(diào)度中心

瀏覽器訪問默認地址:http://localhost:8080/xxl-job-admin

賬號:admin 密碼: 123456 (初始狀態(tài)下)
登錄成功

到此為止,第一階段xxl-job-admin模塊的部署就完成啦。
整合springboot項目
此部分官方已經(jīng)給出具體案例,我們只需對趕方案例進行整合或修改即可。

接下來就是如何整合到自己的springboot項目中
一、引入maven依賴

注意:此處版本要與xxl-job-admin中版本保持一致
二、引入配置類

只需引入XxlJobConfig配置類即可,其他配置類為該項目其他配置類,與此無關(guān)!
可以直接從拉取的項目中復(fù)制過來,無需任何修改!!!
復(fù)制此類到你的項目中即可!

@Configuration
public?class?XxlJobConfig?{
????private?Logger?logger?=?LoggerFactory.getLogger(XxlJobConfig.class);
????@Value("${xxl.job.admin.addresses}")
????private?String?adminAddresses;
????@Value("${xxl.job.accessToken}")
????private?String?accessToken;
????@Value("${xxl.job.executor.appname}")
????private?String?appname;
????@Value("${xxl.job.executor.address}")
????private?String?address;
????@Value("${xxl.job.executor.ip}")
????private?String?ip;
????@Value("${xxl.job.executor.port}")
????private?int?port;
????@Value("${xxl.job.executor.logpath}")
????private?String?logPath;
????@Value("${xxl.job.executor.logretentiondays}")
????private?int?logRetentionDays;
????@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;
????}
????/**
?????*?針對多網(wǎng)卡、容器內(nèi)部署等情況,可借助?"spring-cloud-commons"?提供的?"InetUtils"?組件靈活定制注冊IP;
?????*
?????*????? 1、引入依賴:
?????*??????????
?????*?????????????org.springframework.cloud
?????*?????????????spring-cloud-commons
?????*?????????????${version}
?????*?????????
?????*
?????*??????2、配置文件,或者容器啟動變量
?????*??????????spring.cloud.inetutils.preferred-networks:?'xxx.xxx.xxx.'
?????*
?????*??????3、獲取IP
?????*??????????String?ip_?=?inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
?????*/
}
三、修改yml配置文件
xxl:
??job:
????admin:
??????#?調(diào)度中心部署跟地址?[選填]:如調(diào)度中心集群部署存在多個地址則用逗號分隔。
??????#?執(zhí)行器將會使用該地址進行"執(zhí)行器心跳注冊"和"任務(wù)結(jié)果回調(diào)";為空則關(guān)閉自動注冊;
??????addresses:?http://127.0.0.1:8086/xxl-job-admin
????#?執(zhí)行器通訊TOKEN [選填]:非空時啟用;
????accessToken:
????executor:
??????#?執(zhí)行器AppName [選填]:執(zhí)行器心跳注冊分組依據(jù);為空則關(guān)閉自動注冊
??????appname:?xxl-job-executor-mileage
??????#?執(zhí)行器注冊?[選填]:優(yōu)先使用該配置作為注冊地址,為空時使用內(nèi)嵌服務(wù)?”IP:PORT“?作為注冊地址。
??????#從而更靈活的支持容器類型執(zhí)行器動態(tài)IP和動態(tài)映射端口問題。
??????address:
??????#?執(zhí)行器IP [選填]:默認為空表示自動獲取IP,多網(wǎng)卡時可手動設(shè)置指定IP,該IP不會綁定Host僅作為通訊實用;
??????#?地址信息用于?"執(zhí)行器注冊"?和?"調(diào)度中心請求并觸發(fā)任務(wù)";
??????ip:
??????#?執(zhí)行器端口號?[選填]:小于等于0則自動獲取;默認端口為9999,單機部署多個執(zhí)行器時,注意要配置不同執(zhí)行器端口;
??????port:?8088
??????#?執(zhí)行器運行日志文件存儲磁盤路徑?[選填]?:需要對該路徑擁有讀寫權(quán)限;為空則使用默認路徑;
??????logpath:?/data/applogs/xxl-job/jobhandler
??????#?執(zhí)行器日志文件保存天數(shù)?[選填]?:?過期日志自動清理, 限制值大于等于3時生效;?否則, 如-1, 關(guān)閉自動清理功能;
??????logretentiondays:?30
logging:
??config:?classpath:logback.xml??????
四、編寫測試類
@Component
public?class?MileageXxlJob?{
????private?static?Logger?logger?=?LoggerFactory.getLogger(SampleXxlJob.class);
????/**
?????*?1、簡單任務(wù)示例(Bean模式)
?????*/
????@XxlJob("mileageJobHandler")
????public?void?mileageJobHandler()?throws?Exception?{
????????XxlJobHelper.log("XXL-JOB,?Hello?World.");
????????for?(int?i?=?0;?i?5;?i++)?{
????????????XxlJobHelper.log("beat?at:"?+?i);
????????????System.out.println("ok");
????????????TimeUnit.SECONDS.sleep(2);
????????}
????????//?default?success
????}
}????
項目目錄如下

編寫完成后,啟動服務(wù)!(注意啟動順序,先啟動xxl-job-admin模塊,再啟動您的springboot服務(wù))
五、任務(wù)調(diào)度中心,配置服務(wù)
1.新增執(zhí)行器

2.新增任務(wù)

3.執(zhí)行任務(wù)

注:測試選擇執(zhí)行一次即可,如需項目保持運行,選擇啟動
4.查看運行結(jié)果

到此,XXL-JOB與SpringBoot的簡單整合入門教程就完成了,感謝您的查閱!
來源:https://blog.csdn.net/weixin_51130354
-End-
最近有一些小伙伴,讓我?guī)兔φ乙恍?面試題?資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

面試題】即可獲取