一种业务处理方法以及装置、电子设备、介质与流程
- 国知局
- 2024-08-08 16:50:17
本发明属于互联网,尤其涉及一种业务处理方法以及装置、电子设备、介质。
背景技术:
1、目前,随着游戏业务中日益丰富的活动内容,后端业务系统的逻辑逐渐复杂。例如,游戏业务中跨服活动的增加,往往会触发大量的跨服业务,对后端业务系统的远程调用和异步并发等业务功能造成较大压力。
2、相关技术中,一般的游戏后端框架的远程调用监听回调方案难以在后端业务系统中实现由远程调用请求发起的串联或并联业务逻辑,而如果引入当下主流的promise/future到上述游戏框架中,则会因为promise/future框架与线程调度、协程调度的深度耦合而破坏游戏框架的线程模型,带来异常风险。另外,现有promise/future方案除了会侵入线程模型外,还由于没考虑所依赖的λ函数的缺陷而对线上热更造成麻烦,影响项目的维护与稳定。
技术实现思路
1、本发明提供了一种业务处理方法以及装置、电子设备、介质,以实现与线程协程解耦的业务处理流程,便于在后端业务系统中添加业务处理逻辑,提升后端业务系统的灵活性。
2、第一方面,本发明提供了一种业务处理方法,该方法包括:
3、响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;
4、生成多个远程调用请求对应的多个promise代理对象,并组合多个promise代理对象以得到目标promise对象;
5、在目标promise对象上设置监听器;
6、通过多个promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,并将接收到的数据处理结果传入目标promise对象;
7、通过目标promise对象将组合后的数据处理结果传递给监听器,以使得本地业务通过监听器获取到组合后的数据处理结果。
8、在一可能的设计中,方法还包括:通过promise代理对象中包含的回调函数接收异步处理任务的执行状态。
9、在一可能的设计中,回调函数接口为λ函数。通过promise代理对象中包含的回调函数接收异步处理任务的执行状态,包括:通过调用setsuccesss方法或setfailure方法传入λ函数,以接收用于指示异步处理任务执行状态的回调参数。
10、在一可能的设计中,方法还包括:对于调用第一回调方法的异步处理任务,若多个服务端中任一服务器返回的执行状态为成功,则确定异步处理任务完成;对于调用第二回调方法的异步处理任务,若多个服务端中所有服务器返回的执行状态均为成功,则确定异步处理任务完成。
11、在一可能的设计中,通过多个promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,包括:对于多个promise代理对象中的每一promise代理对象,通过每一promise代理对象中包含的数据处理接口,调用预设的数据返回方法获取多个服务端的数据处理结果;其中,多个promise代理对象包括面向同步流程的第一promise代理对象和/或面向异步流程的第二promise代理对象,数据处理结果包括多个服务端各自对应的返回值和/或异常值。
12、在一可能的设计中,第一promise代理对象对应的数据返回方法包括工厂方法,工厂方法用于从服务端获取param数据类型的返回值和/或异常值。
13、在一可能的设计中,响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,包括:对异步处理任务中的多个待处理数据进行串行化处理,并将串行化处理后的多个待处理数据封装到远程调用请求中;向多个服务端分别发送远程调用请求。
14、在一可能的设计中,组合后的数据处理结果包括串行化处理的多个数据处理结果。
15、该方法还包括:若串行化处理的多个数据处理结果中包括异常值,并且异常值处于promise链末尾,则确定异常值是否被处理;输出未被处理的异常值以及对应的堆栈信息。
16、在一可能的设计中,方法还包括:对于promise代理对象包含的回调函数未处理过的变量参数,通过回调函数中设置的可选参数以及预设映射方式获取变量参数。
17、在一可能的设计中,方法还包括:通过第一回调方法添加与promise代理对象构成竞争关系的超时promise对象;若promise代理对象的返回时间早于超时promise对象的返回时间,则向监听器传递promise代理对象的返回值;若超时promise对象的返回时间早于promise代理对象的返回时间,则确定promise代理对象竞争失败,并向监听器传递promise代理对象存在超时异常。
18、第二方面,本发明提供了一种业务处理装置,该装置包括:
19、请求模块,用于响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;
20、生成模块,用于生成多个远程调用请求对应的多个promise代理对象,并组合多个promise代理对象以得到目标promise对象;
21、设置模块,用于在目标promise对象上设置监听器;
22、传入模块,用于通过多个promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,并将接收到的数据处理结果传入目标promise对象;
23、传递模块,用于通过目标promise对象将组合后的数据处理结果传递给监听器,以使得本地业务通过监听器获取到组合后的数据处理结果。
24、第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第一方面中的业务处理方法。
25、本发明实施例又提供了一种系统,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上面描述的一种业务处理方法。
26、本发明实施例进一步提供了一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上面描述的一种业务处理方法。
27、本发明实施例中,采用promise异步编程模式设计业务处理逻辑,具体地,响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;生成多个远程调用请求对应的多个promise代理对象,并组合多个promise代理对象以得到目标promise对象;在目标promise对象上设置监听器;通过多个promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,并将接收到的数据处理结果传入promise对象;通过目标promise对象将组合后的数据处理结果传递给监听器,以使得本地业务通过监听器获取到组合后的数据处理结果。本发明实施例中,通过多个promise代理对象接收对应服务端的数据处理结果,进而通过目标promise对象组合数据处理结果以传递给监听器,便于监听器触发后续业务,实现了与线程/协程的微任务解耦。通过本发明实施例大大简化后端业务逻辑,避免新增业务处理逻辑对后端业务系统框架的侵入,便于在后端业务系统中添加各种业务处理逻辑,提升后端业务系统的灵活性。
本文地址:https://www.jishuxx.com/zhuanli/20240808/270688.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表