前言
分佈式開發環境中,任務調度的需求基本是必不可少的。傳統的最佳方案是Quartz。
但是Quartz有以下缺點
對業務系統侵入性非常嚴重,需要將十幾張表放入業務數據庫中。
沒有提供界面操作,不是很人性化。
調度邏輯和QuartzJobBean耦合在同一個項目中。
在這種背景下,需要有一個更好的平臺來克服以上缺點,xxl-job應運而生。
推薦理由
- 開發迅速、學習簡單、輕量級、易擴展。
- 現已開放源代碼並接入多家公司線上產品線,開箱即用。
通過Web頁面對任務進行CRUD操作,操作簡單,一分鐘上手。
支持動態修改任務狀態、啟動/停止任務,以及終止運行中任務,即時生效。
支持彈性擴容縮容,故障轉移,任務超時控制,任務失敗重試。
任務失敗時支持郵件報警,支持配置多郵件地址群發報警郵件,方便及時感知錯誤。
樣例和文檔詳細,持續更新迭代
實踐
- git下載源碼: https://gitee.com/xuxueli0323/xxl-job.git
- 導入到Eclipse或者其他開發工具
- 修改配置文件
4.初始化SQL腳本
- 啟動項目,默認端口8080,項目路徑xxl-job-admin
- 登錄,默認用戶名:密碼 admin:123456
6.在springBoot項目中使用
6.1 POM中引入依賴
<code> com.xuxueli xxl-job-core 2.2.1-SNAPSHOT /<code>
6.2 執行器配置
6.3 執行器的啟動類配置
6.4創建Job任務類(Bean的方法模式)
注意
<code>1、在Spring Bean實例中,開發Job方法,方式格式要求為 "public ReturnT execute(String param)" 2、為Job方法添加註解 "@XxlJob(value="自定義jobhandler名稱", init = "JobHandler初始化方法", destroy = "JobHandler銷燬方法")",註解value值對應的是調度中心新建任務的JobHandler屬性的值。 3、執行日誌:需要通過 "XxlJobLogger.log" 打印執行日誌;/<code>
6.5調度中心,新建調度任務
6.6 啟動項目
6.7 通過任務調度中心,啟動任務
6.8 觀察調度日誌,查看任務是否成功