[發明專利]應用系統多服務集群下定時任務調度方法有效
| 申請號: | 202211682914.1 | 申請日: | 2022-12-27 |
| 公開(公告)號: | CN115934287B | 公開(公告)日: | 2023-09-12 |
| 發明(設計)人: | 裴俊楓;王宗 | 申請(專利權)人: | 無錫錫銀金科信息技術有限責任公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/52;G06F16/2455;G06F16/23;G06F16/27 |
| 代理公司: | 無錫市匯誠永信專利代理事務所(普通合伙) 32260 | 代理人: | 朱曉林 |
| 地址: | 214000 江蘇省無錫市*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 應用 系統 服務 集群 定時 任務 調度 方法 | ||
本申請公開一種應用系統多服務集群下定時任務調度方法,涉及集群服務器領域,接收指令創建任務,將任務對應數據存入數據庫并同步到redis緩存中;查詢redis緩存的任務列表,根據任務列表中各任務的狀態信息更新可執行任務列表;基于redis分布式機制獲取可執行任務列表對應的任務鎖爭搶列表,通過爭搶鎖機制和任務的前序條件完成情況確定目標任務;對目標任務創建子任務線程,并放到本地線程池中異步執行和同步redis緩存。本方案采用redis爭搶鎖機制來搶占任務,對關聯性任務采用前序條件和后續條件核驗機制來校驗,確保高并發狀態下任務不會重復觸發,且采用線程池分配的方案避免了數據庫io高占用和鎖死的問題。
技術領域
本申請實施例涉及服務器領域,特別涉及一種應用系統多服務集群下定時任務調度方法。
背景技術
服務器集群就是指將很多服務器集中起來一起進行同一種服務,在客戶端看來就像是只有一個服務器。集群可以利用多個計算機進行并行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統還是能正常運行。一旦在服務器上安裝并運行了集群服務,該服務器即可加入群集。集群化操作可以減少單點故障數量,并且實現了群集化資源的高可用性。
當應用系統處于多服務集群部署狀態下時,由于存在服務同一個定時任務會被重復觸發,如果存在關聯任務時相關聯的任務也會被同時觸發,這就可能會造成一個任務執行多遍。
針對重復觸發和執行的情況,現有分布式任務調度主要有以下兩種解決方案:
1.OpenSymphony開源組織的Quartz定時任務組件。該組件使用數據庫鎖的方式解決多服務情況下相同任務被同時喚醒的問題,但是無法實現連鎖任務的級聯觸發。需要額外配置定時任務對前一任務查詢或者自己在任務中手動觸發下一任務。由于使用數據庫鎖在服務集群較大或任務較多的情況下會造成數據庫io阻塞嚴重影響數據庫性能。并且Quartz組件是java開發只能在java生態中使用。
2.xxljob任務調度系統。該系統是由個人開發者在Quartz開源組件的基礎上進行二次開發,實現了關聯任務自動觸發功能。同樣由于其基于Quartz核心邏輯還是數據庫鎖,同樣會造成數據庫io阻塞。并且由于其為java開發并且是個獨立運行的平臺,如果需要集成進現在系統會有一定的門檻。
發明內容
本申請提供一種應用系統多服務集群下定時任務調度方法,解決多服務集群部署狀態下定時任務和關聯任務重復觸發的問題,所述方法包括:
接收指令創建任務,將任務對應數據存入數據庫并同步到redis緩存中;
任務核心線程啟動并完成數據同步后,查詢所述redis緩存的任務列表,根據所述任務列表中各任務的狀態信息更新所述可執行任務列表;其中,所述任務列表中包含有所有創建且未執行完畢的任務和對應狀態信息,所述可執行任務列表中包含有所述任務核心線程確定的具備執行條件的任務;
基于redis分布式機制獲取所述可執行任務列表對應的任務鎖爭搶列表,通過爭搶鎖機制和任務的前序條件完成情況確定目標任務;
對所述目標任務創建子任務線程,并放到本地線程池中異步執行和同步所述redis緩存。
具體的,所述redis緩存還包含有所述任務列表對應的爭搶鎖列表;所述爭搶鎖列表包括所有服務對任務的爭搶狀態;
所述狀態信息至少包括每個任務的爭搶鎖id、任務id、任務參數、定時信息、執行類名、任務重試次數及最大重試次數、任務當前狀態、前序任務列表和后續任務列表;所述前序任務列表和所述后續任務列表中包含有執行該任務需要的前序任務和后續任務;所述定時信息為觸發該任務爭搶機制的時間。
具體的,所述查詢所述redis緩存的查詢任務列表,根據所述任務列表中各任務的狀態信息更新所述可執行任務列表,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫錫銀金科信息技術有限責任公司,未經無錫錫銀金科信息技術有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211682914.1/2.html,轉載請聲明來源鉆瓜專利網。





