簡介
XXL-JOB是一個輕量級分布式任務調(diào)度平臺垂谢,其核心設計目標是開發(fā)迅速、學習簡單疮茄、輕量級滥朱、易擴展「睿現(xiàn)已開放源代碼并接入多家公司線上產(chǎn)品線,開箱即用徙邻。
特性
1排嫌、簡單:支持通過Web頁面對任務進行CRUD操作,操作簡單缰犁,一分鐘上手淳地;
2、動態(tài):支持動態(tài)修改任務狀態(tài)帅容、暫停/恢復任務颇象,以及終止運行中任務,即時生效并徘;
3遣钳、調(diào)度中心HA(中心式):調(diào)度采用中心式設計,“調(diào)度中心”基于集群Quartz實現(xiàn)并支持集群部署麦乞,可保證調(diào)度中心HA蕴茴;
4、執(zhí)行器HA(分布式):任務分布式執(zhí)行姐直,任務"執(zhí)行器"支持集群部署倦淀,可保證任務執(zhí)行HA;
5简肴、注冊中心: 執(zhí)行器會周期性自動注冊任務, 調(diào)度中心將會自動發(fā)現(xiàn)注冊的任務并觸發(fā)執(zhí)行晃听。同時,也支持手動錄入執(zhí)行器地址砰识;
6能扒、彈性擴容縮容:一旦有新執(zhí)行器機器上線或者下線,下次調(diào)度時將會重新分配任務辫狼;
7初斑、路由策略:執(zhí)行器集群部署時提供豐富的路由策略,包括:第一個膨处、最后一個见秤、輪詢、隨機真椿、一致性HASH鹃答、最不經(jīng)常使用、最近最久未使用突硝、故障轉(zhuǎn)移测摔、忙碌轉(zhuǎn)移等;
8、故障轉(zhuǎn)移:任務路由策略選擇"故障轉(zhuǎn)移"情況下锋八,如果執(zhí)行器集群中某一臺機器故障浙于,將會自動Failover切換到一臺正常的執(zhí)行器發(fā)送調(diào)度請求。
9挟纱、阻塞處理策略:調(diào)度過于密集執(zhí)行器來不及處理時的處理策略羞酗,策略包括:單機串行(默認)、丟棄后續(xù)調(diào)度紊服、覆蓋之前調(diào)度檀轨;
10、任務超時控制:支持自定義任務超時時間围苫,任務運行超時將會主動中斷任務裤园;
11、任務失敗重試:支持自定義任務失敗重試次數(shù)剂府,當任務失敗時將會按照預設的失敗重試次數(shù)主動進行重試拧揽;其中分片任務支持分片粒度的失敗重試;
12腺占、任務失敗告警淤袜;默認提供郵件方式失敗告警,同時預留擴展接口衰伯,可方面的擴展短信铡羡、釘釘?shù)雀婢绞剑?br>
13、分片廣播任務:執(zhí)行器集群部署時意鲸,任務路由策略選擇"分片廣播"情況下烦周,一次任務調(diào)度將會廣播觸發(fā)集群中所有執(zhí)行器執(zhí)行一次任務,可根據(jù)分片參數(shù)開發(fā)分片任務怎顾;
14读慎、動態(tài)分片:分片廣播任務以執(zhí)行器為維度進行分片,支持動態(tài)擴容執(zhí)行器集群從而動態(tài)增加分片數(shù)量槐雾,協(xié)同進行業(yè)務處理夭委;在進行大數(shù)據(jù)量業(yè)務操作時可顯著提升任務處理能力和速度。
15募强、事件觸發(fā):除了"Cron方式"和"任務依賴方式"觸發(fā)任務執(zhí)行之外株灸,支持基于事件的觸發(fā)任務方式。調(diào)度中心提供觸發(fā)任務單次執(zhí)行的API服務擎值,可根據(jù)業(yè)務事件靈活觸發(fā)慌烧。
16、任務進度監(jiān)控:支持實時監(jiān)控任務進度鸠儿;
17屹蚊、Rolling實時日志:支持在線查看調(diào)度結(jié)果,并且支持以Rolling方式實時查看執(zhí)行器輸出的完整的執(zhí)行日志;
18淑翼、GLUE:提供Web IDE,支持在線開發(fā)任務邏輯代碼品追,動態(tài)發(fā)布玄括,實時編譯生效,省略部署上線的過程肉瓦。支持30個版本的歷史版本回溯遭京。
19、腳本任務:支持以GLUE模式開發(fā)和運行腳本任務泞莉,包括Shell哪雕、Python、NodeJS鲫趁、PHP斯嚎、PowerShell等類型腳本;
20、任務依賴:支持配置子任務依賴挨厚,當父任務執(zhí)行結(jié)束且執(zhí)行成功后將會主動觸發(fā)一次子任務的執(zhí)行, 多個子任務用逗號分隔堡僻;
21、一致性:“調(diào)度中心”通過DB鎖保證集群分布式調(diào)度的一致性, 一次任務調(diào)度只會觸發(fā)一次執(zhí)行疫剃;
22钉疫、自定義任務參數(shù):支持在線配置調(diào)度任務入?yún)ⅲ磿r生效巢价;
23牲阁、調(diào)度線程池:調(diào)度系統(tǒng)多線程觸發(fā)調(diào)度運行,確保調(diào)度精確執(zhí)行壤躲,不被堵塞城菊;
24、數(shù)據(jù)加密:調(diào)度中心和執(zhí)行器之間的通訊進行數(shù)據(jù)加密柒爵,提升調(diào)度信息安全性役电;
25、郵件報警:任務失敗時支持郵件報警棉胀,支持配置多郵件地址群發(fā)報警郵件法瑟;
26、推送maven中央倉庫: 將會把最新穩(wěn)定版推送到maven中央倉庫, 方便用戶接入和使用;
27唁奢、運行報表:支持實時查看運行數(shù)據(jù)霎挟,如任務數(shù)量、調(diào)度次數(shù)麻掸、執(zhí)行器數(shù)量等酥夭;以及調(diào)度報表,如調(diào)度日期分布圖,調(diào)度成功分布圖等熬北;
28疙描、全異步:任務調(diào)度流程全異步化設計實現(xiàn),如異步調(diào)度讶隐、異步運行起胰、異步回調(diào)等,有效對密集調(diào)度進行流量削峰巫延,理論上支持任意時長任務的運行效五;
29、跨平臺:原生提供通用HTTP任務Handler(Bean任務炉峰,"httpJobHandler")畏妖;業(yè)務方只需要提供HTTP鏈接即可,不限制語言疼阔、平臺戒劫;
30、國際化:調(diào)度中心支持國際化設置婆廊,提供中文谱仪、英文兩種可選語言,默認為中文否彩;