[发明专利]一种远程过程调用的方法、装置及计算机设备有效
申请号: | 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.vipzhuanli.com/pat/books/201710523235.2/1.html,转载请声明来源钻瓜专利网。