1 前言
XXL-JOB?是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級(jí)、易擴(kuò)展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。
可以前往 Gitee 地址進(jìn)行下載使用:
https://gitee.com/xuxueli0323/xxl-job.git
?2 架構(gòu)圖
?3 xxl-job-admin 搭建
?文章來源地址http://www.zghlxwxcb.cn/news/detail-420156.html
3.1 拉取代碼
代碼結(jié)構(gòu)如下:
運(yùn)行 SQL 文件至本地?cái)?shù)據(jù)庫:
修改 xxl-job-admin 模塊的 yml 文件:
3.2 啟動(dòng)任務(wù)調(diào)度中心
如下圖:
瀏覽器訪問默認(rèn)地址:http://localhost:8080/xxl-job-admin
賬號(hào):admin 密碼:123456 (初始狀態(tài)下)。
3.3?登錄成功
?
如下圖:
到此為止,第一階段 xxl-job-admin?模塊的部署就完成啦。
?
4 整合 SpringBoot 項(xiàng)目
此部分官方已經(jīng)給出具體案例,我們只需對趕方案例進(jìn)行整合或修改即可。
接下來就是如何整合到自己的 SpringBoot 項(xiàng)目中。
4.1 引入 maven 依賴
如下圖:
注意:此處版本要與 xxl-job-admin 中版本保持一致。
4.2 引入配置類
如下圖:
只需引入 XxlJobConfig 配置類即可,其他配置類為該項(xiàng)目其他配置類,與此無關(guān)!
可以直接從拉取的項(xiàng)目中復(fù)制過來,無需任何修改?。?!復(fù)制此類到你的項(xiàng)目中即可!
?
@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、引入依賴:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器啟動(dòng)變量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、獲取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
4.3 修改 yml 配置文件
代碼如下:
xxl:
job:
admin:
# 調(diào)度中心部署跟地址 [選填]:如調(diào)度中心集群部署存在多個(gè)地址則用逗號(hào)分隔。
# 執(zhí)行器將會(huì)使用該地址進(jìn)行"執(zhí)行器心跳注冊"和"任務(wù)結(jié)果回調(diào)";為空則關(guān)閉自動(dòng)注冊;
addresses: http://127.0.0.1:8086/xxl-job-admin
# 執(zhí)行器通訊TOKEN [選填]:非空時(shí)啟用;
accessToken:
executor:
# 執(zhí)行器AppName [選填]:執(zhí)行器心跳注冊分組依據(jù);為空則關(guān)閉自動(dòng)注冊
appname: xxl-job-executor-mileage
# 執(zhí)行器注冊 [選填]:優(yōu)先使用該配置作為注冊地址,為空時(shí)使用內(nèi)嵌服務(wù) ”IP:PORT“ 作為注冊地址。
#從而更靈活的支持容器類型執(zhí)行器動(dòng)態(tài)IP和動(dòng)態(tài)映射端口問題。
address:
# 執(zhí)行器IP [選填]:默認(rèn)為空表示自動(dòng)獲取IP,多網(wǎng)卡時(shí)可手動(dòng)設(shè)置指定IP,該IP不會(huì)綁定Host僅作為通訊實(shí)用;
# 地址信息用于 "執(zhí)行器注冊" 和 "調(diào)度中心請求并觸發(fā)任務(wù)";
ip:
# 執(zhí)行器端口號(hào) [選填]:小于等于0則自動(dòng)獲取;默認(rèn)端口為9999,單機(jī)部署多個(gè)執(zhí)行器時(shí),注意要配置不同執(zhí)行器端口;
port: 8088
# 執(zhí)行器運(yùn)行日志文件存儲(chǔ)磁盤路徑 [選填] :需要對該路徑擁有讀寫權(quán)限;為空則使用默認(rèn)路徑;
logpath: /data/applogs/xxl-job/jobhandler
# 執(zhí)行器日志文件保存天數(shù) [選填] : 過期日志自動(dòng)清理, 限制值大于等于3時(shí)生效; 否則, 如-1, 關(guān)閉自動(dòng)清理功能;
logretentiondays: 30
logging:
config: classpath:logback.xml
?
4.4 編寫測試類
代碼如下:
@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
}
}
?
4.5 項(xiàng)目目錄
編寫完成后,啟動(dòng)服務(wù)?。ㄗ⒁鈫?dòng)順序,先啟動(dòng) xxl-job-admin 模塊,再啟動(dòng)您的 springboot 服務(wù))
4.6 任務(wù)調(diào)度中心,配置服務(wù)
① 新增執(zhí)行器:
②新增任務(wù):
③執(zhí)行任務(wù):
注:測試選擇執(zhí)行一次即可,如需項(xiàng)目保持運(yùn)行,選擇啟動(dòng)。
④ 查看運(yùn)行結(jié)果:
到此,XXL-JOB 與 SpringBoot 的簡單整合入門教程就完成了,感謝您的查閱!文章來源:http://www.zghlxwxcb.cn/news/detail-420156.html
?
到了這里,關(guān)于XXL-JOB分布式任務(wù)調(diào)度平臺(tái)搭建以及和SpringBoot整合應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!