.

1. 為什麼要使用XXL-JOB?

如果上述二種方式都不滿足你的需求,我建議你嘗試使用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)