[發明專利]一種基于AMQP協議的高可靠性任務調度方法和系統有效
| 申請號: | 201710985447.2 | 申請日: | 2017-10-20 |
| 公開(公告)號: | CN107943567B | 公開(公告)日: | 2021-12-28 |
| 發明(設計)人: | 孫耀輝 | 申請(專利權)人: | 北京知道未來信息技術有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/54 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 邱曉鋒 |
| 地址: | 100102 北京市朝陽區阜*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 amqp 協議 可靠性 任務 調度 方法 系統 | ||
本發明涉及一種基于AMQP協議的高可靠性任務調度方法和系統。該方法包括:1)將任務拆分為若干子任務,并將子任務放入任務隊列;2)記錄未收到確認回執的子任務狀態到子任務狀態集,并將子任務狀態集持久化存儲;3)從任務隊列中獲取子任務,然后執行子任務并將執行結果放入結果隊列;4)從結果隊列中獲取執行結果并將其作為確認回執,從子任務狀態集中刪除對應子任務的狀態信息,并將更新后的子任務狀態集持久化存儲。當災備場景發生時,從持久化存儲中獲取子任務狀態集,重新生成子任務并恢復到任務隊列中。本發明有效避免了任務的重復調度、任務和任務結果丟失等問題的發生,保證了調度系統的可靠性和任務結果的高可靠性。
技術領域
本發明屬于信息技術領域,具體涉及一種基于AMQP協議的高可靠性任務調度方法和系統。
背景技術
任務調度是指基于給定時間點、給定時間間隔或者給定執行次數自動執行任務。而為了保證任務進度反饋的實時性,任務調度算法一般會將一個任務拆分為若干小任務。任務調度算法適用于生產者、消費者模型,其中生產者負責將任務拆分為子任務,消費者負責執行子任務并輸出執行結果,子任務和輸出結果的傳遞一般通過消息隊列實現。
一般情況下,任務調度算法僅需要關注在正常場景下被拆分后的子任務是否都被正確的調度并回收執行結果。這類調度算法在災備場景下經常會出現子任務的丟失和重復調度等問題。
現有實現方案生產者隊列(即任務隊列)與消費者隊列(即結果隊列)為兩個相互獨立的隊列,生產者負責將拆分后的子任務放入任務隊列,消費者負責從任務隊列中獲取子任務執行并將執行后產生的結果放入結果隊列。任務隊列與結果隊列通常常駐內存,不考慮持久化存儲。任務與結果數據的傳輸也一般采用自動確認模式,即消息被放入隊列后即認為隊列另一端的生產者或消費者已成功接收到此消息。
工程實踐中,任務調度系統一般在任務需要長時間、周期性運行且無人值守的場景下被大范圍使用。現有技術方案存在消息不進行持久化存儲和缺乏有效的消息確認和重傳機制等問題,當應用失敗、服務器意外掉電或機房斷電等災備場景發生時無法進行容災恢復。這些問題會導致任務無法繼續正常執行、任務結果數據丟失等嚴重問題,造成巨大的時間和資源上的浪費。
發明內容
本發明針對上述問題,提供基于AMQP協議的高可靠性任務調度方法和系統,能夠有效提升任務調度的可靠性。
本發明采用的技術方案如下:
一種基于AMQP協議的高可靠性任務調度方法,包括以下步驟:
1)將任務拆分為若干子任務,并將子任務放入任務隊列;
2)記錄未收到確認回執的子任務狀態到子任務狀態集,并將子任務狀態集持久化存儲;
3)從任務隊列中獲取子任務,然后執行子任務并將執行結果放入結果隊列;
4)從結果隊列中獲取執行結果并將其作為確認回執,從子任務狀態集中刪除對應子任務的狀態信息,并將更新后的子任務狀態集持久化存儲。
進一步地,當沒有災備場景發生時,重復步驟3)、4)直到任務執行結束。
進一步地,當災備場景發生時,從持久化存儲中獲取子任務狀態集,按照子任務狀態集中子任務的狀態重新生成子任務,并將子任務恢復到任務隊列中,使得子任務能夠繼續執行。
進一步地,每個子任務均有一個唯一ID作為子任務的唯一標識。
進一步地,執行子任務后返回的執行結果中包含對應子任務的ID;從結果隊列中獲取到執行結果后從其中獲取子任務ID作為確認回執,并從子任務狀態集中刪除對應子任務ID的狀態信息,然后將更新后的狀態集持久化存儲。
一種基于AMQP協議的高可靠性任務調度系統,其包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京知道未來信息技術有限公司,未經北京知道未來信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710985447.2/2.html,轉載請聲明來源鉆瓜專利網。





