我們知道徐雪力老師的xxl-job定時調度任務是可以解決集羣情況下的調度重複問題的...
內置了輪詢,單一,隨機,hash等算法來實現單個機器執行定時 的需求.
但是我們項目因爲是多環境的....而每一個執行器都有他自己的執行器Appname,所以如果一個項目中的定時任務執行器名稱就設置一個的話,回到多環境情況下使用的是同一個執行器名稱.也就會造成註冊的ip地址是多個環境的機器的ip.
此時再進行輪詢就會造成該定時任務輪詢到了不同機器上面.
爲了解決這個問題有兩種方案:
方案一:搭建多套環境的xxl-job-admin.分別管理開發,測試,凍結,生產環境的定時任務.
優點:解決多環境問題下單臺調度中心調度到不同環境下的定時任務.
缺點:維護比較複雜,效率低下:
方案二:搭建單個xxl-job-admin調度中心,然後項目中根據多套環境的配置文件來區分執行器
每個環境中配置執行器的配置信息時設置不同的執行器名稱和ip地址.
如下:
優點:可以解決多環境問題.根據執行期名稱來區分執行器.一套調度中心管理多套環境.
缺點:多環境在一起容易誤操作生產.(可以爲不同環境建立不同子賬號解決該問題)
下面是定時調度中心的執行器實現效果