[發明專利]一種遠程過程調用的方法、裝置及計算機設備有效
| 申請號: | 201710523235.2 | 申請日: | 2017-06-30 |
| 公開(公告)號: | CN107277029B | 公開(公告)日: | 2020-01-03 |
| 發明(設計)人: | 楊亮;陳少杰;張文明 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;G06F9/54 |
| 代理公司: | 11570 北京眾達德權知識產權代理有限公司 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 遠程 過程 調用 方法 裝置 計算機 設備 | ||
1.一種遠程過程調用的方法,其特征在于,所述方法包括:
將預先約定的遠程方法的名稱及對應的異步處理函數注冊至全局字典中;
接收目標調用請求;
基于所述目標調用請求,判斷在所述全局字典中是否能查找到所述目標調用請求對應的目標異步處理函數;
若在所述全局字典中能查找到所述目標異步處理函數,在主線程中調用所述目標異步處理函數;
確定所述目標異步處理函數待處理任務的數據量,根據所述待處理任務的數據量分配子線程,在所述子線程中執行所述目標異步處理函數;
利用獲取函數獲取并發送執行結果;其中,
所述若在所述全局字典中能查找到所述目標異步處理函數,則在主線程中調用所述目標異步處理函數,包括:
獲取用于指示網絡連接成功后的第一標識符、所述目標調用請求中的參數信息和所述目標調用請求中的第二標識符;
基于所述參數信息、所述第一標識符及所述第二標識符生成上下文環境塊;
將所述第一標識符設置為所述目標異步處理函數的第一個參數,將所述參數信息設置為所述目標異步處理函數的第二個參數,將所述參數列表中的參數個數設置為所述目標異步處理函數的第三個參數,將所述上下文環境塊設置為所述目標異步處理函數的第四個參數;
將所述目標異步處理函數投遞至主線程中,在主線程中調用所述目標異步處理函數。
2.如權利要求1所述的方法,其特征在于,所述基于所述參數信息及所述標識符生成上下文環境塊,包括:
將所述參數信息賦值給所述上下文環境塊的參數字段;
將所述第一標識符賦值給所述上下文環境的第一標識字段;
將所述第二標識符賦值給所述上下文環境塊的第二標識字段。
3.如權利要求1所述的方法,其特征在于,所述利用獲取函數獲取并發送執行結果,包括:
將第二標識符及所述執行結果序列化為一個網絡消息;
將所述網絡消息及上下文環境塊設置到所述獲取函數RpcCompleteAsyncProcedure中的相應參數中;
利用所述獲取函數RpcCompleteAsyncProcedure發送所述執行結果。
4.如權利要求1所述的方法,其特征在于,所述獲取并發送執行結果后,還包括:刪除上下文環境塊。
5.如權利要求1所述的方法,其特征在于,若在所述全局字典中沒有查找到目標異步處理函數,還包括:
返回結果集,所述結果集中包括用于指示無查找結果的指示值。
6.如權利要求1所述的方法,其特征在于,所述異步處理函數的模型包括:
void(*RpcAsyncProcedure)(void*caller,IRpcArgument**args,int numArgs,RpcAsyncProcedureContext context);其中,
所述RpcAsyncProcedure為所述異步處理函數的名稱,所述caller,IRpcArgument為標識參數;所述args為所述目標調用請求中的參數信息;所述numArgs為所述args參數的個數;所述RpcAsyncProcedureContext為上下文環境塊,所述context為用于記錄在所述上下文環境塊中與當前響應相關聯的上下文環境的參數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710523235.2/1.html,轉載請聲明來源鉆瓜專利網。





