任務排程-分散式任務排程平臺XXL-JOB
阿新 • • 發佈:2019-06-18
1. 為什麼要使用XXL-JOB?
- 任務排程-單體應用定時任務解決方案(存在效能、擴充套件、容錯等問題)
- 任務排程-第三方庫Quartz實現分散式任務管理與排程(存在更新任務要同時配置部署多個應用的問題)
如果上述二種方式都不滿足你的需求,我建議你嘗試使用XXL-JOB或其他開源排程平臺。
XXL-JOB功能:
- 擁有叢集任務管理平臺,統一管理任務排程平臺上排程任務,負責觸發排程執行,提升排程系統容災和可用性,可通過nginx為排程中心叢集做負載均衡,分配域名。排程中心訪問、執行器回撥配置、呼叫API服務等操作均通過該域名進行。
- 可自定義開發執行器(實際業務程式碼開發),負責接收“排程中心”的排程並執行;可直接部署執行器,也可以將執行器整合到現有業務專案中,同業務執行器可無限水平擴充套件(部署多份),通過排程中心設定策略進行負載排程。
- 執行器管理
- 使用者管理
- 排程日誌
- 任務管理
- 執行報表(執行狀態統計)
- 支援Java、Shell、Python、PHP、Nodejs、PowerShell GLUE方式任務排程
- 支援多種路由策略:第一個、最後一個、輪詢、隨機、一致性HASH、最不經常使用、最近最久未使用、故障轉移、忙碌轉移、分片廣播
- 失敗重試
- 報警郵件提醒
- ....
2. 架構、配置使用方式請參考官方github:
https://github.com/xuxueli/xxl-job/
3. 總結:
個人覺得XXL-JOB的實用功能如下:
- 比較簡單,開發配置容易上手
- 可以部署同一任務多例項路由,路由策略豐富
- 可以管理任務與任務之間的先後順序,順序執行
- 有郵件報警功能和視覺化執行報表功能,實時監控並處理有問題的任務
- 可以手動執行失敗的任務
- 擁有失敗重試、任務超時的機制
- 執行模式也支援多種,可支援線上自定義任務業務
- 任務都擁有獨立負責人,可根據業務進行許可權管控
- 擁有排程日誌,實時檢視排程情況
- 執行器還有自動註冊到排程中心的功能
- 開源,有專案原始碼,完全可以自定義開發排程中心Web端(Bootstrap+ftl)