[發明專利]一種異步任務處理方法及系統有效
| 申請號: | 202010731395.8 | 申請日: | 2020-07-27 |
| 公開(公告)號: | CN112000449B | 公開(公告)日: | 2023-03-31 |
| 發明(設計)人: | 季廣猛;谷凱凱 | 申請(專利權)人: | 新華三大數據技術有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F16/2453;G06F16/2458 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 450000 河南省鄭州市鄭州高*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 異步 任務 處理 方法 系統 | ||
本公開提供了一種異步任務處理方法及系統,用于解決現有大數據系統任務處理效率不高、擴展性不佳的技術問題。本公開提供的異步任務處理系統分為四層,分別為應用層、請求處理層、緩沖層和任務處理層。請求處理層負責任務的提交、查詢等操作,緩沖層使用分布式流處理平臺緩存任務隊列,使用分布式搜索引擎緩存任務狀態記錄。本公開中,采用異步方式實現任務的創建與處理,可以提高系統處理高并發請求的能力;采用基于版本號的免查詢的狀態更新機制更新任務狀態,可以減少系統交互,提高系統處理效率。
技術領域
本公開涉及通信及大數據領域,尤其涉及一種異步任務處理方法及系統。
背景技術
隨著業務的發展,業務的處理邏輯越來越復雜,導致業務請求的處理時間不斷增加,響應速度越來越慢。除此之外,業務訪問量也會快速增加,這要求系統必須能夠處理高并發場景,否則系統隨時都有崩潰的可能。
為了提高處理效率,一種方案是基于Kafka與MySQL的結合實現業務處理任務的異步處理,Kafka負責緩存任務請求,MySQL負責記錄任務的處理狀態。該方案中,上層應用的任務請求先緩存到Kafka,并在MySQL中記錄任務的當前狀態。任務的每次狀態變更都記錄在MySQL中。上層應用可以通過訪問數據庫查詢任務所處的狀態。雖然MySQL可以集群式部署,但是其集群式比較復雜,所以一般都是單節點部署。因此該方案不可避免地會出現單節點故障,而且單節點的處理速度有限,當業務量快速增加時,MySQL將成為整個系統的性能瓶頸。此外,后期業務量增加時,一般是選擇分庫、分表的方式進行擴展,但是分庫分表操作比較復雜,開發維護成本比較高。
發明內容
有鑒于此,本公開提供一種異步任務處理方法及系統,用于解決現有大數據系統任務處理效率不高、擴展性不佳的技術問題。
基于本公開實施例,本公開提供了一種異步任務處理方法,該方法包括:
請求處理層接收應用層發送的任務創建請求,并創建任務;
請求處理層將任務加入緩沖層中的分布式流處理平臺中的任務隊列,并在緩沖層中的分布式搜索引擎中創建所述任務對應的任務狀態記錄;
任務處理層從所述任務隊列中提取任務并執行任務;
任務處理層負責更新所述分布式搜索引擎中所述任務的任務狀態記錄。
基于本公開實施例,進一步地,所述方法還包括:
為每個任務狀態分配一個版本號;
當緩沖層的分布式搜索引擎接收到更新任務狀態請求時,分布式搜索引擎先校驗所述更新任務狀態請求中攜帶的任務狀態版本號是否與所述任務狀態記錄中的任務狀態版本號一致,如果一致則更新任務狀態并根據任務狀態版本號的切換規則更新任務狀態版本號,否則拒絕更新任務狀態。
基于本公開實施例,進一步地,所述任務的任務狀態分為多個級別,每一級任務狀態具有相同的任務狀態版本號;所述的任務狀態版本號的切換規則為:上一級任務狀態版本號只能向下一級任務狀態版本號切換。
基于本公開實施例,進一步地,該方法還包括:
所述請求處理層接收到應用層的任務狀態查詢請求時,從所述分布式搜索引擎中讀取所述任務的任務狀態記錄,并將查詢結果反饋給所述請求處理層。
基于本公開實施例,進一步地,該方法還包括:
當所述請求處理層接收到應用層的任務取消請求請求取消所述任務時,所述請求處理層指令所述分布式搜索引擎更新所述任務的任務狀態記錄為取消狀態;
當任務超時需要終止所述任務時,所述請求處理層指令所述任務處理層終止所述任務的執行,所述任務處理層還用于請求所述分布式搜索引擎更新所述任務的任務狀態記錄為處理失敗狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于新華三大數據技術有限公司,未經新華三大數據技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010731395.8/2.html,轉載請聲明來源鉆瓜專利網。





