XXL-JOB v2.1.1 發(fā)布,分布式任務(wù)調(diào)度平臺(tái)

XXL-JOB 正在角逐 “2019年度最受歡迎中國開源軟件”,期待您寶貴的一票!
投票鏈接


v2.1.1 Release Notes

  • 1、 調(diào)度中心日志自動(dòng)清理功能(至此,調(diào)度中心/執(zhí)行器均支持日志自動(dòng)清理,過期天數(shù)均默認(rèn)設(shè)置為30天):調(diào)度中心新增配置項(xiàng)("xxl.job.logretentiondays")日志保存天數(shù),過期日志自動(dòng)清理;解決海量日志情況下日志表慢SQL問題;限制大于等于7時(shí)生效,否則關(guān)閉清理功能,默認(rèn)為30;
  • 2、 調(diào)度報(bào)表優(yōu)化:新增日志報(bào)表的存儲(chǔ)表,三天內(nèi)的任務(wù)日志會(huì)以每分鐘一次的頻率異步同步至報(bào)表中;任務(wù)報(bào)表僅讀取報(bào)表數(shù)據(jù),極大提升加載速度;
  • 3、 Cron在線生成工具:任務(wù)新增、編輯框通過組件在線生成Cron表達(dá)式;
  • 4、 Cron下次執(zhí)行時(shí)間查詢:支持通過界面在線查看后續(xù)連續(xù)5次執(zhí)行時(shí)間;
  • 5、 調(diào)度中心新增應(yīng)用健康檢查功能,借助“spring-boot-starter-actuator”,相對(duì)地址 “/actuator/health”;
  • 6、 DB腳本默認(rèn)編碼改為utf8mb4,修復(fù)字符亂碼問題(建議Mysql版本5.7+);
  • 7、 調(diào)度中心任務(wù)平均分配,觸發(fā)組件每次獲取與線程池?cái)?shù)量相關(guān)數(shù)量的任務(wù),避免大量任務(wù)集中在單個(gè)調(diào)度中心集群節(jié)點(diǎn);
  • 8、 任務(wù)觸發(fā)組件優(yōu)化,預(yù)加載頻率正常1s一次,當(dāng)預(yù)加載輪空時(shí)主動(dòng)休眠一個(gè)加載周期,動(dòng)態(tài)降低加載頻率從而降低DB壓力;
  • 9、 調(diào)度組件優(yōu)化:針對(duì)永遠(yuǎn)不會(huì)觸發(fā)的Cron禁止配置和啟動(dòng);任務(wù)Cron最后一次觸發(fā)后再也不會(huì)觸發(fā)時(shí),比如一次性任務(wù),主動(dòng)停止相關(guān)任務(wù);
  • 10、DB重連優(yōu)化,修復(fù)DB宕機(jī)重連后任務(wù)調(diào)度停止的問題,重連后自動(dòng)加入調(diào)度集群觸發(fā)任務(wù)調(diào)度;
  • 11、注冊(cè)監(jiān)控線程優(yōu)化,降低死鎖幾率;
  • 12、調(diào)度中心日志刪除優(yōu)化,改為分頁獲取ID并根據(jù)ID刪除的方式,避免批量刪除海量日志導(dǎo)致死鎖問題;
  • 13、任務(wù)重試時(shí)參數(shù)丟失的問題修復(fù);
  • 14、調(diào)度中心移除SQL中的 "now()" 函數(shù);集群部署時(shí)不再依賴DB時(shí)鐘,僅需要保證調(diào)度中心應(yīng)用節(jié)點(diǎn)時(shí)鐘一致即可;
  • 15、任務(wù)觸發(fā)組件加載順序調(diào)整,避免小概率情況下組件隨機(jī)加載順序?qū)е碌腎18N的NPE問題;
  • 16、JobThread自銷毀優(yōu)化,避免并發(fā)觸發(fā)導(dǎo)致triggerQueue中任務(wù)丟失問題;
  • 17、調(diào)度中心密碼限制18位,修復(fù)修改密碼超過18位無法登陸的問題;
  • 18、任務(wù)告警組件分頁參數(shù)無效問題修復(fù);
  • 19、升級(jí)xxl-rpc版本:服務(wù)端線程優(yōu)化,降低線程內(nèi)存開銷;IpUtil優(yōu)化:增加連通性校,過濾明確非法的網(wǎng)卡;
  • 20、調(diào)度中心回調(diào)API服務(wù)改為restful方式;
  • 21、UI優(yōu)化,任務(wù)列表和日志列表數(shù)據(jù)表格寬度比例調(diào)整,避免數(shù)據(jù)換行提升體驗(yàn);
  • 22、登錄界面取消默認(rèn)填寫的登錄賬號(hào)密碼;
  • 23、執(zhí)行器表屬性調(diào)整,"順序" 屬性調(diào)整為整型,解決執(zhí)行器數(shù)據(jù)較多時(shí)無法正確排序的問題;
  • 24、任務(wù)列表交互優(yōu)化,支持查看任務(wù)所屬執(zhí)行器的注冊(cè)節(jié)點(diǎn);
  • 25、項(xiàng)目依賴升級(jí)至較新穩(wěn)定版本,如spring、spring-boot、mybatis、slf4j、groovy等等;

簡(jiǎn)介

XXL-JOB是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡(jiǎn)單、輕量級(jí)、易擴(kuò)展?,F(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用。

![輸入圖片說明](https://image-static.segmentfault.com/377/159/3771598950-bd8c7b3ad2ef6ce4_articlex

特性

  • 1、簡(jiǎn)單:支持通過Web頁面對(duì)任務(wù)進(jìn)行CRUD操作,操作簡(jiǎn)單,一分鐘上手;
  • 2、動(dòng)態(tài):支持動(dòng)態(tài)修改任務(wù)狀態(tài)、啟動(dòng)/停止任務(wù),以及終止運(yùn)行中任務(wù),即時(shí)生效;
  • 3、調(diào)度中心HA(中心式):調(diào)度采用中心式設(shè)計(jì),“調(diào)度中心”自研調(diào)度組件并支持集群部署,可保證調(diào)度中心HA;
  • 4、執(zhí)行器HA(分布式):任務(wù)分布式執(zhí)行,任務(wù)"執(zhí)行器"支持集群部署,可保證任務(wù)執(zhí)行HA;
  • 5、注冊(cè)中心: 執(zhí)行器會(huì)周期性自動(dòng)注冊(cè)任務(wù), 調(diào)度中心將會(huì)自動(dòng)發(fā)現(xiàn)注冊(cè)的任務(wù)并觸發(fā)執(zhí)行。同時(shí),也支持手動(dòng)錄入執(zhí)行器地址;
  • 6、彈性擴(kuò)容縮容:一旦有新執(zhí)行器機(jī)器上線或者下線,下次調(diào)度時(shí)將會(huì)重新分配任務(wù);
  • 7、路由策略:執(zhí)行器集群部署時(shí)提供豐富的路由策略,包括:第一個(gè)、最后一個(gè)、輪詢、隨機(jī)、一致性HASH、最不經(jīng)常使用、最近最久未使用、故障轉(zhuǎn)移、忙碌轉(zhuǎn)移等;
  • 8、故障轉(zhuǎn)移:任務(wù)路由策略選擇"故障轉(zhuǎn)移"情況下,如果執(zhí)行器集群中某一臺(tái)機(jī)器故障,將會(huì)自動(dòng)Failover切換到一臺(tái)正常的執(zhí)行器發(fā)送調(diào)度請(qǐng)求。
  • 9、阻塞處理策略:調(diào)度過于密集執(zhí)行器來不及處理時(shí)的處理策略,策略包括:?jiǎn)螜C(jī)串行(默認(rèn))、丟棄后續(xù)調(diào)度、覆蓋之前調(diào)度;
  • 10、任務(wù)超時(shí)控制:支持自定義任務(wù)超時(shí)時(shí)間,任務(wù)運(yùn)行超時(shí)將會(huì)主動(dòng)中斷任務(wù);
  • 11、任務(wù)失敗重試:支持自定義任務(wù)失敗重試次數(shù),當(dāng)任務(wù)失敗時(shí)將會(huì)按照預(yù)設(shè)的失敗重試次數(shù)主動(dòng)進(jìn)行重試;其中分片任務(wù)支持分片粒度的失敗重試;
  • 12、任務(wù)失敗告警;默認(rèn)提供郵件方式失敗告警,同時(shí)預(yù)留擴(kuò)展接口,可方便的擴(kuò)展短信、釘釘?shù)雀婢绞剑?/li>
  • 13、分片廣播任務(wù):執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇"分片廣播"情況下,一次任務(wù)調(diào)度將會(huì)廣播觸發(fā)集群中所有執(zhí)行器執(zhí)行一次任務(wù),可根據(jù)分片參數(shù)開發(fā)分片任務(wù);
  • 14、動(dòng)態(tài)分片:分片廣播任務(wù)以執(zhí)行器為維度進(jìn)行分片,支持動(dòng)態(tài)擴(kuò)容執(zhí)行器集群從而動(dòng)態(tài)增加分片數(shù)量,協(xié)同進(jìn)行業(yè)務(wù)處理;在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)操作時(shí)可顯著提升任務(wù)處理能力和速度。
  • 15、事件觸發(fā):除了"Cron方式"和"任務(wù)依賴方式"觸發(fā)任務(wù)執(zhí)行之外,支持基于事件的觸發(fā)任務(wù)方式。調(diào)度中心提供觸發(fā)任務(wù)單次執(zhí)行的API服務(wù),可根據(jù)業(yè)務(wù)事件靈活觸發(fā)。
  • 16、任務(wù)進(jìn)度監(jiān)控:支持實(shí)時(shí)監(jiān)控任務(wù)進(jìn)度;
  • 17、Rolling實(shí)時(shí)日志:支持在線查看調(diào)度結(jié)果,并且支持以Rolling方式實(shí)時(shí)查看執(zhí)行器輸出的完整的執(zhí)行日志;
  • 18、GLUE:提供Web IDE,支持在線開發(fā)任務(wù)邏輯代碼,動(dòng)態(tài)發(fā)布,實(shí)時(shí)編譯生效,省略部署上線的過程。支持30個(gè)版本的歷史版本回溯。
  • 19、腳本任務(wù):支持以GLUE模式開發(fā)和運(yùn)行腳本任務(wù),包括Shell、Python、NodeJS、PHP、PowerShell等類型腳本;
  • 20、命令行任務(wù):原生提供通用命令行任務(wù)Handler(Bean任務(wù),"CommandJobHandler");業(yè)務(wù)方只需要提供命令行即可;
  • 21、任務(wù)依賴:支持配置子任務(wù)依賴,當(dāng)父任務(wù)執(zhí)行結(jié)束且執(zhí)行成功后將會(huì)主動(dòng)觸發(fā)一次子任務(wù)的執(zhí)行, 多個(gè)子任務(wù)用逗號(hào)分隔;
  • 22、一致性:“調(diào)度中心”通過DB鎖保證集群分布式調(diào)度的一致性, 一次任務(wù)調(diào)度只會(huì)觸發(fā)一次執(zhí)行;
  • 23、自定義任務(wù)參數(shù):支持在線配置調(diào)度任務(wù)入?yún)ⅲ磿r(shí)生效;
  • 24、調(diào)度線程池:調(diào)度系統(tǒng)多線程觸發(fā)調(diào)度運(yùn)行,確保調(diào)度精確執(zhí)行,不被堵塞;
  • 25、數(shù)據(jù)加密:調(diào)度中心和執(zhí)行器之間的通訊進(jìn)行數(shù)據(jù)加密,提升調(diào)度信息安全性;
  • 26、郵件報(bào)警:任務(wù)失敗時(shí)支持郵件報(bào)警,支持配置多郵件地址群發(fā)報(bào)警郵件;
  • 27、推送maven中央倉庫: 將會(huì)把最新穩(wěn)定版推送到maven中央倉庫, 方便用戶接入和使用;
  • 28、運(yùn)行報(bào)表:支持實(shí)時(shí)查看運(yùn)行數(shù)據(jù),如任務(wù)數(shù)量、調(diào)度次數(shù)、執(zhí)行器數(shù)量等;以及調(diào)度報(bào)表,如調(diào)度日期分布圖,調(diào)度成功分布圖等;
  • 29、全異步:任務(wù)調(diào)度流程全異步化設(shè)計(jì)實(shí)現(xiàn),如異步調(diào)度、異步運(yùn)行、異步回調(diào)等,有效對(duì)密集調(diào)度進(jìn)行流量削峰,理論上支持任意時(shí)長(zhǎng)任務(wù)的運(yùn)行;
  • 30、跨平臺(tái):原生提供通用HTTP任務(wù)Handler(Bean任務(wù),"HttpJobHandler");業(yè)務(wù)方只需要提供HTTP鏈接即可,不限制語言、平臺(tái);
  • 31、國際化:調(diào)度中心支持國際化設(shè)置,提供中文、英文兩種可選語言,默認(rèn)為中文;
  • 32、容器化:提供官方docker鏡像,并實(shí)時(shí)更新推送dockerhub,進(jìn)一步實(shí)現(xiàn)產(chǎn)品開箱即用;
  • 33、線程池隔離:調(diào)度線程池進(jìn)行隔離拆分,慢任務(wù)自動(dòng)降級(jí)進(jìn)入"Slow"線程池,避免耗盡調(diào)度線程,提高系統(tǒng)穩(wěn)定性;;
  • 34、用戶管理:支持在線管理系統(tǒng)用戶,存在管理員、普通用戶兩種角色;
  • 35、權(quán)限控制:執(zhí)行器維度進(jìn)行權(quán)限控制,管理員擁有全量權(quán)限,普通用戶需要分配執(zhí)行器權(quán)限后才允許相關(guān)操作;

文檔地址

技術(shù)交流

最后編輯于
?著作權(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)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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