XXL-JOB

xxl-job的github地址
https://github.com/xuxueli/xxl-job
xxl-job的文檔地址
http://www.xuxueli.com/xxl-job/#/

傳統(tǒng)的job,在tomcat服務集群時,在每臺jvm都會配置相同的job配置,并且配置都是寫死的,任務時間到時,每臺服務都會執(zhí)行任務,自身無法保證冪等性,如果想保證冪等性需要用到分布式鎖或者通過標識來判斷這個服務的job是否執(zhí)行(true和false標識),并且無法實現負載策略

XXL-JOB是一個輕量級分布式任務調度平臺
支持job群集容錯,負載均衡策略,job補償(實現自動重試,多次失敗會發(fā)郵件通知),job日志記錄,動態(tài)配置job規(guī)則

XXL-JOB搭建
https://github.com/xuxueli/xxl-job上下載xxl-job的源碼項目

image.png

下載后解壓,使用idea打開
image.png

xxl-job-admin模塊是xxl-job服務端的可視化管理平臺
xxl-job-core模塊是xxl-job的源碼
xxl-job-executor-samples模塊是job客戶端的例子代碼(我們自己寫的業(yè)務job)

步驟1:首先執(zhí)行xxl-job項目的sql創(chuàng)建表和初始化默認的記錄(默認使用mysql),因為xxl-job的數據是保存在數據庫的(創(chuàng)建的執(zhí)行器信息、job任務的服務地址、admin登陸的賬號密碼等信息)


image.png

步驟二:修改xxl-job-admin的application.properties的數據庫賬號和密碼,修成自己數據庫的賬號密碼,其他配置用不上的可以使用默認的


image.png

步驟三:目前最新版本admin模塊也是使用springboot啟動的,所以直接運行啟動類就行了

image.png

啟動后打開進入admin可視化管理界面
http://127.0.0.1:8080/xxl-job-admin
image.png

以上的xxl-job的admin平臺服務已經搭建好了,下面我們先創(chuàng)建自己的定時任務,我使用xxl-job源碼中的xxl-job-executor-samples項目作為例子

image.png

使用xxl-job-executor-samples中的xxl-job-executor-sample-springboot工程(相當于我們進行開發(fā)的項目代碼)
需要注意yml配置文件的xxl.job配置
image.png

上面配置的端口,等一下admin平臺創(chuàng)建執(zhí)行器時需要用到。
我們自己創(chuàng)建一個job任務
image.png

創(chuàng)建的job任務類需要加上@JobHandler(value = "myJob")注冊并承繼IJobHandler類
@JobHandler(value = "myJob")這個注解的作用是等下通過admin平臺創(chuàng)建任務時需要指定到哪個任務代碼的名稱
這個項目的例子也是springboot的,直接啟動類啟動就行了。

admin平臺和我們寫的job代碼的服務都啟動好之后,我們通過admin平臺關聯(lián)需要執(zhí)行任務的服務器地址和任務
1.在執(zhí)行器管理創(chuàng)建執(zhí)行器(配置job任務的服務地址)


image.png

機器地址的端口就是這里配置的端口


image.png

這個執(zhí)行器的所創(chuàng)建的任務都會從配置機器地址去找

2.在任務管理為剛剛創(chuàng)建的執(zhí)行器創(chuàng)建任務(給對應的服務器關聯(lián)對應的執(zhí)行任務)


image.png

這的JobHandler就是與我們的定時任務代碼的@JobHandler(value = "myJob")對應


image.png

保存好之后點擊操作的啟動就會啟動任務,等Cron到時間就會通過執(zhí)行器機器地址并通任務的JobHandler的名稱反射找到找到對應服務的對應定時任務類的execute方法來執(zhí)行



image.png

就會有執(zhí)行效果

如果admin需要群集,官方推薦的方法是:
調度中心支持集群部署,提升調度系統(tǒng)容災和可用性。
調度中心集群部署時,幾點要求和建議:
DB配置保持一致;
登陸賬號配置保持一致;
集群機器時鐘保持一致(單機集群忽視);
建議:推薦通過nginx為調度中心集群做負載均衡,分配域名。調度中心訪問、執(zhí)行器回調配置、調用API服務等操作均通過該域名進行。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容