[发明专利]消息调用方法、装置、电子设备及存储介质在审
申请号: | 202310108383.3 | 申请日: | 2023-02-02 |
公开(公告)号: | CN116361025A | 公开(公告)日: | 2023-06-30 |
发明(设计)人: | 葛明曦;孔祥瑞;张倩;陈佳锋;刘思彦 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 李翔 |
地址: | 310056 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 调用 方法 装置 电子设备 存储 介质 | ||
本申请提供一种消息调用方法、装置、电子设备及存储介质。该方法包括:获取用于指示目标方法的匿名函数和与目标方法对应的目标参数,并以入参的形式将匿名函数以及目标参数设置于待封装方法中;对匿名函数执行序列化以确定序列化数据;提取序列化数据中的目标属性值,并将目标属性值保存于第一自定义类中;对第一自定义类和目标参数执行序列化以确定目标消息,并将目标消息发送至消息队列;响应于确定消费端通过消息队列获取目标消息,控制消费端对目标消息执行反序列化以确定目标参数以及第一自定义类;利用反射机制根据第一自定义类确定待封装方法以使消费端通过待封装方法调用目标方法。提出一种通用的调用方法,减少了代码量和代码维护成本。
技术领域
本申请涉及计算机技术领域,尤其涉及一种消息调用方法、装置、电子设备及存储介质。
背景技术
相关技术中,基于消息队列的异步调用方法中,消费端每接收到一种不同的信息,都需要采用多个分别与每一种消息对应的策略模式对消息进行处理,也即每多一种异步方法的调用,就需要多实现一个对应的策略,对应的就需要编写很多对应策略的代码,这也就造成了相关技术中基于消息队列的异步调用实现可读性差,在实际使用中代码量多,维护成本高,且调用方式复杂,调用效率低。
发明内容
有鉴于此,本申请的目的在于提出一种消息调用方法、装置、电子设备及存储介质。
基于上述目的,在第一方面,本申请提供了一种消息调用方法,所述方法包括:
获取用于指示目标方法的匿名函数和与所述目标方法对应的目标参数,并以入参的形式将所述匿名函数以及所述目标参数设置于待封装方法中;所述待封装方法,包括:消费端;
对所述匿名函数执行序列化以确定序列化数据;
提取所述序列化数据中的目标属性值,并将所述目标属性值保存于第一自定义类中;
对所述第一自定义类和所述目标参数执行序列化以确定目标消息,并将所述目标消息发送至消息队列;
响应于确定消费端通过所述消息队列获取所述目标消息,控制所述消费端对所述目标消息执行反序列化以确定所述目标参数以及所述第一自定义类;
利用反射机制根据所述第一自定义类确定所述待封装方法中的匿名函数以使所述消费端通过所述待封装方法调用所述目标方法。
在第二方面,本申请提供了一种消息调用装置,所述装置包括:
设置模块,被配置为获取用于指示目标方法的匿名函数和与所述目标方法对应的目标参数,并以入参的形式将所述匿名函数以及所述目标参数设置于待封装方法中;所述待封装方法,包括:消费端;
第一确定模块,被配置为对所述匿名函数执行序列化以确定序列化数据;
保存模块,被配置为提取所述序列化数据中的目标属性值,并将所述目标属性值保存于第一自定义类中;
第二确定模块,被配置为对所述第一自定义类和所述目标参数执行序列化以确定目标消息,并将所述目标消息发送至消息队列;
控制模块,被配置为响应于确定消费端通过所述消息队列获取所述目标消息,控制所述消费端对所述目标消息执行反序列化以确定所述目标参数以及所述第一自定义类;
调用模块,被配置为利用反射机制根据所述第一自定义类确定所述待封装方法中的匿名函数以使所述消费端通过所述待封装方法调用所述目标方法。
在第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的消息调用方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310108383.3/2.html,转载请声明来源钻瓜专利网。