1.前言
當我們用SpringBoot編寫定時任務處理業(yè)務,但是每次定時的配置都需要修改配置文件,然后重啟才生效。有沒有辦法不需要重啟服務,又能測試定時器Job的功能是否正常?
今天跟大家分享一個開源工具,希望能幫助到有這個需求的童鞋們。

2.概念
Elastic-Job是當當網(wǎng)開源的分布式任務調(diào)度解決方案,是業(yè)內(nèi)使用較多的分布式調(diào)度解決方案。
Elastic-Job-Lite定位為輕量級無中心化解決方案,使用jar包的形式提供分布式任務的協(xié)調(diào)服務,,外部僅僅依賴Zookeeper。
今天跟大家分享的就是Elastic-Job-Lite,從如何搭建,到使用觸發(fā)Job。
3.部署
3.1下載編譯
$ git clone https://github.com/elasticjob/elastic-job-lite.git
$ cd elastic-job-lite
$ mvn clean install -Dmaven.test.skip=true
編譯完畢后會生成一個壓縮包,這里的版本是以3.0.0.M1為例。
$ ls -lrt elastic-job-lite-console/target/elastic-job-lite-console-3.0.0.M1-SNAPSHOT.tar.gz
3.2部署啟動
$ tar zxf elastic-job-lite-console-3.0.0.M1-SNAPSHOT.tar.gz
$ cd elastic-job-lite-console-3.0.0.M1-SNAPSHOT/bin
$ ./start.sh
- 默認配置文件是auth.properties, 配置管理員及訪客用戶名及密碼
root.username=root
root.password=root
guest.username=guest
guest.password=guest
- 8899為默認端口號,可通過啟動腳本輸入-p自定義端口號。
3.3驗證
訪問http://localhost:8899/即可訪問控制臺

4.使用教程
當我們用SpringBoot實現(xiàn)了Job服務,我們可以根據(jù)提供的定時任務信息,在這個開源網(wǎng)頁平臺填入相應的信息,那么就可以管理對應的Job服務。
4.1配置注冊中心
1.左邊菜單點擊【全局配置】選中【注冊中心配置】,然后出現(xiàn)一個已配置列表,在列表的分頁顯示下方有個【添加】按鈕進行添加。

2.注冊中心信息填寫
- 注冊中心名稱:自己自定義填寫。
- 注冊中心地址:填寫對應服務的zk信息,多個用逗號分隔。
- 命名空間:填寫對應服務的zk命名空間namespace。
- 登錄憑證:可不填,默認zookeeper不需要填寫,除非設置了zookeeper相關信息。

3.填寫完之后,點擊右下角【提交】按鈕,即完成。
4.列表中出現(xiàn)新增的注冊配置,然后點擊該配置最后的操作項,【連接】,則連接上zookeeper。

4.2 查看這個zookeeper注冊中心對應的作業(yè)
上面配置完注冊中心后,會顯示對應的定時任務,在左側【作業(yè)操作】下點擊【作業(yè)維度】,即可查看當前掛在zookeeper的命名空間下的所有任務,提供刪除,編輯,觸發(fā),失效等一系列功能。

4.3 不同狀態(tài)下對應的作業(yè)按鈕
①作業(yè)維度下Job已生效的狀態(tài)為正常,操作下有5個按鈕:修改、詳情、觸發(fā)、失效、終止;
②作業(yè)維度下Job狀態(tài)為已失效時,操作下有4個按鈕:修改、詳情、生效、終止;
③作業(yè)維度下Job狀態(tài)為分片待調(diào)整時,操作下有3個按鈕:修改、詳情、終止;
④作業(yè)維度下Job狀態(tài)為已下線時,操作下有2個按鈕:修改、刪除。
4.4 修改job的觸發(fā)時間
1.點擊作業(yè)維度最后一列操作下的"修改"按鈕進入修改作業(yè)頁面,如圖所示:

2.修改“Cron表達式”里的時間格式,改成你想要執(zhí)行的時間策略,提交修改。
這樣到了指定的時間,就會執(zhí)行這個作業(yè)Job,是不是很簡單。
4.5 實時觸發(fā)Job
①處于分片待調(diào)整狀態(tài)的Job,需要更改Cron表達式后程序執(zhí)行了一次或者springboot的程序執(zhí)行過一次作業(yè),狀態(tài)才會變?yōu)檎!?梢渣c擊“修改”按鈕,修改表達式來修改觸發(fā)器觸發(fā)的時間;
②job狀態(tài)顯示為正常時,才可以點擊“觸發(fā)”按鈕直接觸發(fā);
這樣觸發(fā)之后,就是實時的觸發(fā)Job,我們就直接觀察JAVA程序的日志,看業(yè)務是否正常。
5.結束語
是不是很簡單,再也不需要改配置文件重復Java服務了。