xxl-job 任務(wù)注冊(cè)

官方文檔:https://www.xuxueli.com/xxl-job/


之前和分享了一下對(duì)xxl-job的簡(jiǎn)單理解,這次聊一聊xxl-job任務(wù)注冊(cè)流程和簡(jiǎn)單的使用方法。


一、XXL-JOB調(diào)度數(shù)據(jù)庫(kù)表如下:

-?xxl_job_lock:任務(wù)調(diào)度鎖表;

-?xxl_job_group:執(zhí)行器信息表,維護(hù)任務(wù)執(zhí)行器信息;

-?xxl_job_info:調(diào)度擴(kuò)展信息表:?用于保存XXL-JOB調(diào)度任務(wù)的擴(kuò)展信息,如任務(wù)分組、任務(wù)名、機(jī)器地址、執(zhí)? 行器、執(zhí)行入?yún)⒑蛨?bào)警郵件等等;

-?xxl_job_log:調(diào)度日志表:?用于保存XXL-JOB任務(wù)調(diào)度的歷史信息,如調(diào)度結(jié)果、執(zhí)行結(jié)果、調(diào)度入?yún)ⅰ⒄{(diào)度機(jī) 器和執(zhí)行器等等;

-?xxl_job_log_report:調(diào)度日志報(bào)表:用戶(hù)存儲(chǔ)XXL-JOB任務(wù)調(diào)度日志的報(bào)表,調(diào)度中心報(bào)表功能頁(yè)面會(huì)用到;

-?xxl_job_logglue:任務(wù)GLUE日志:用于保存GLUE更新歷史,用于支持GLUE的版本回溯功能;

-?xxl_job_registry:執(zhí)行器注冊(cè)表,維護(hù)在線(xiàn)的執(zhí)行器和調(diào)度中心機(jī)器地址信息;

-?xxl_job_user:系統(tǒng)用戶(hù)表;

之所以先介紹表的目的在于,XXL-JOB所有的操作都是基于這幾張表的。


二、增加執(zhí)行器


2.1 UI配置執(zhí)行器


1、"調(diào)度中心OnLine:"右側(cè)顯示在線(xiàn)的"調(diào)度中心"列表,?任務(wù)執(zhí)行結(jié)束后,?將會(huì)以failover的模式進(jìn)行回調(diào)調(diào)度中心通知執(zhí)行結(jié)果,?避免回調(diào)的單點(diǎn)風(fēng)險(xiǎn);

2、"執(zhí)行器列表"?中顯示在線(xiàn)的執(zhí)行器列表,?可通過(guò)"OnLine?機(jī)器"查看對(duì)應(yīng)執(zhí)行器的集群機(jī)器。





AppName:?是每個(gè)執(zhí)行器集群的唯一標(biāo)示AppName,?執(zhí)行器會(huì)周期性以AppName為對(duì)象進(jìn)行自動(dòng)注冊(cè)??赏ㄟ^(guò)該配置自動(dòng)發(fā)現(xiàn)注冊(cè)成功的執(zhí)行器,?供任務(wù)調(diào)度時(shí)使用;

名稱(chēng):?執(zhí)行器的名稱(chēng),?因?yàn)锳ppName限制字母數(shù)字等組成,可讀性不強(qiáng),?名稱(chēng)為了提高執(zhí)行器的可讀性;

排序:?執(zhí)行器的排序,?系統(tǒng)中需要執(zhí)行器的地方,如任務(wù)新增,?將會(huì)按照該排序讀取可用的執(zhí)行器列表;

注冊(cè)方式:調(diào)度中心獲取執(zhí)行器地址的方式;

自動(dòng)注冊(cè):執(zhí)行器自動(dòng)進(jìn)行執(zhí)行器注冊(cè),調(diào)度中心通過(guò)底層注冊(cè)表可以動(dòng)態(tài)發(fā)現(xiàn)執(zhí)行器機(jī)器地址;

手動(dòng)錄入:人工手動(dòng)錄入執(zhí)行器的地址信息,多地址逗號(hào)分隔,供調(diào)度中心使用;

機(jī)器地址:"注冊(cè)方式"為"手動(dòng)錄入"時(shí)有效,支持人工維護(hù)執(zhí)行器的地址信息;


2.2 調(diào)度中心配置執(zhí)行器

程序配置執(zhí)行器比較簡(jiǎn)單,只是一個(gè)單純的web接口,做了必要的參數(shù)校驗(yàn),直接存入xxl_job_group表中



同時(shí)xxl_job_registry表中維護(hù)了執(zhí)行器存活機(jī)器的相關(guān)信息,數(shù)據(jù)是動(dòng)態(tài)的,會(huì)新增和物理刪除。



三、增加任務(wù)


3.1 UI新建任務(wù)


登錄調(diào)度中心,點(diǎn)擊下圖所示“新建任務(wù)”按鈕,新建示例任務(wù)。然后,參考下面截圖中任務(wù)的參數(shù)配置,點(diǎn)擊保存。




值得一提的是,一個(gè)任務(wù)只能對(duì)應(yīng)一個(gè)執(zhí)行器,反之亦然,一個(gè)執(zhí)行器可以擁有對(duì)個(gè)任務(wù)


3.2 執(zhí)行器實(shí)現(xiàn)

客戶(hù)端實(shí)必須實(shí)現(xiàn)對(duì)應(yīng)的接口,如果是spring項(xiàng)目,增加相應(yīng)地注解即可


3.3 調(diào)度中心增加任務(wù)

程序配置執(zhí)行器比較簡(jiǎn)單,是一個(gè)單純的web接口

而后做了大量的的參數(shù)校驗(yàn),確認(rèn)執(zhí)行器存在,最后存入xxl_job_group表中,等待后續(xù)的執(zhí)行,流程也相對(duì)簡(jiǎn)單。


四、總結(jié)

任務(wù)新增流程相對(duì)比較簡(jiǎn)單,執(zhí)行器代碼侵入性也比較低,最主要明白幾張表的作用,和執(zhí)行器與任務(wù)之間的關(guān)系,后面會(huì)分享一下,任務(wù)是具體如何執(zhí)行的。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容