[發明專利]保證異步程序健壯性的方法及設備在審
| 申請號: | 201710221436.7 | 申請日: | 2017-04-06 |
| 公開(公告)號: | CN107015910A | 公開(公告)日: | 2017-08-04 |
| 發明(設計)人: | 李群;張鑫;蘇楠 | 申請(專利權)人: | 上海云軸信息科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 上海百一領御專利代理事務所(普通合伙)31243 | 代理人: | 甘章乖,邵棟 |
| 地址: | 200241 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 保證 異步 程序 健壯性 方法 設備 | ||
技術領域
本申請涉及信息技術領域,尤其涉及一種保證異步程序健壯性的方案。
背景技術
在IaaS(Infrastructure as a Service,基礎設施即服務)系統中,以創建虛擬機的操作為例,管理節點發出一個信息:我要創建10臺虛擬機,。每臺虛擬機的創建,需要查找可用的CPU,內存,網絡等多種資源。對于管理節點來說,它發出請求后,可以繼續進行查找數據庫、克隆、創建存儲、連接網絡等多種操作。假設管理節點發送一個請求到計算節點(物理機)上需要1s,物理機創建虛擬機需要100s,創建成功返回管理節點消息需要1s。那么創建100臺虛擬機,對管理節點來說,若采用同步的構架,就需要102×100s。若采用異步的構架,由于物理機創建這些虛擬機的過程相對獨立,這個過程雖然并不會降低物理機創建所有虛擬機的資源消耗和時間開銷,但是對于整個系統來說耗時將遠小于同步的方式。
異步的架構往往使用異步方法來執行任務,但是異步方法中的異常處理一直是一個難題。由于在理論上,對每個可能出現異常的代碼塊,都需要加上能夠處理異常的代碼,從而保證異步程度的健壯性,否則當代碼塊出現異常時,將導致程序崩潰。由于對異常處理的代碼,其本身行數較多,可能大于可能出現異常的代碼塊本身,并且同一個項目中技術人員的水平、執行情況的差異,整個過程工作量巨大,且在很難保證對每個可能出現異常的代碼塊都加上能夠處理異常的代碼。
申請內容
本申請的一個目的是提供一種保證異步程序健壯性的方法及設備。
為實現上述目的,本申請提供了一種保證異步程序健壯性的方法,該方法包括:
在編譯過程中,檢測異步程序中異步方法所對應的代碼塊;
在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序。
進一步地,在編譯過程中,檢測異步程序中異步方法所對應的代碼塊,包括:
在編譯過程中,查詢所述異步程序中預先定義的數據結構;
在查詢到所述數據結構后,根據所述數據結構在所述異步程序中確定所述異步方法所對應的代碼塊。
進一步地,在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序,包括:
根據預設的注入規則,在所述異步方法對應的代碼塊中確定注入異常處理代碼的注入位置;
在所述注入位置注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序。
進一步地,在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序,包括:
在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時,對所述異常進行處理,并繼續執行所述異步程序。
進一步地,所述異常處理代碼為try catch語句。
基于本申請的另一方面,還提供了一種保證異步程序健壯性的設備,其中,該設備包括:
識別裝置,用于在編譯過程中,檢測異步程序中異步方法所對應的代碼塊;
注入裝置,用于在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序。
進一步地,所述識別裝置,用于在編譯過程中,查詢所述異步程序中預先定義的數據結構;以及在查詢到所述數據結構后,根據所述數據結構在所述異步程序中確定所述異步方法所對應的代碼塊。
進一步地,所述注入裝置,用于根據預設的注入規則,在所述異步方法對應的代碼塊中確定注入異常處理代碼的注入位置;以及在所述注入位置注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序。
進一步地,所述注入裝置,用于在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時,對所述異常進行處理,并繼續執行所述異步程序。
進一步地,所述異常處理代碼為try catch語句。:
與現有技術相比,本申請提供了一種保證異步程序健壯性的方案,該方案在異步程序編譯過程中,檢測異步程序中異步方法所對應的代碼塊,然后在所述異步方法所對應的代碼塊中注入異常處理代碼,以使所述異步方法出現異常時繼續執行所述異步程序,從而避免整個異步程序在某些異步方法的代碼塊出現異常時崩潰,從而保證異步程度的健壯性,降低人力成本。
附圖說明
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海云軸信息科技有限公司,未經上海云軸信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201710221436.7/2.html,轉載請聲明來源鉆瓜專利網。





