一种业务处理方法以及装置、电子设备、介质制造方法及图纸

技术编号:33629567 阅读:13 留言:0更新日期:2022-06-02 01:30
本发明专利技术提供一种业务处理方法以及装置、电子设备、介质,本方法响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送包含与相应服务端对应待处理数据的远程调用请求;生成多个远程调用请求对应的多个Promise代理对象,组合多个Promise代理对象以得到目标Promise对象;在目标Promise对象上设置监听器;通过多个Promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,将接收到的数据处理结果传入Promise对象;通过目标Promise对象将组合后的数据处理结果传递给监听器,以使本地业务通过监听器获取到组合后的数据处理结果,实现业务处理逻辑与微任务解耦。与微任务解耦。与微任务解耦。

【技术实现步骤摘要】
一种业务处理方法以及装置、电子设备、介质


[0001]本专利技术属于互联网
,尤其涉及一种业务处理方法以及装置、电子设备、介质。

技术介绍

[0002]目前,随着游戏业务中日益丰富的活动内容,后端业务系统的逻辑逐渐复杂。例如,游戏业务中跨服活动的增加,往往会触发大量的跨服业务,对后端业务系统的远程调用和异步并发等业务功能造成较大压力。
[0003]相关技术中,一般的游戏后端框架的远程调用监听回调方案难以在后端业务系统中实现由远程调用请求发起的串联或并联业务逻辑,而如果引入当下主流的Promise/Future到上述游戏框架中,则会因为Promise/Future框架与线程调度、协程调度的深度耦合而破坏游戏框架的线程模型,带来异常风险。另外,现有Promise/Future方案除了会侵入线程模型外,还由于没考虑所依赖的λ函数的缺陷而对线上热更造成麻烦,影响项目的维护与稳定。

技术实现思路

[0004]本专利技术提供了一种业务处理方法以及装置、电子设备、介质,以实现与线程协程解耦的业务处理流程,便于在后端业务系统中添加业务处理逻辑,提升后端业务系统的灵活性。
[0005]第一方面,本专利技术提供了一种业务处理方法,该方法包括:
[0006]响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;
[0007]生成多个远程调用请求对应的多个Promise代理对象,并组合多个Promise代理对象以得到目标Promise对象;
[0008]在目标Promise对象上设置监听器;
[0009]通过多个Promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,并将接收到的数据处理结果传入目标Promise对象;
[0010]通过目标Promise对象将组合后的数据处理结果传递给监听器,以使得本地业务通过监听器获取到组合后的数据处理结果。
[0011]在一可能的设计中,方法还包括:通过Promise代理对象中包含的回调函数接收异步处理任务的执行状态。
[0012]在一可能的设计中,回调函数接口为λ函数。通过Promise代理对象中包含的回调函数接收异步处理任务的执行状态,包括:通过调用setSuccesss方法或setFailure方法传入λ函数,以接收用于指示异步处理任务执行状态的回调参数。
[0013]在一可能的设计中,方法还包括:对于调用第一回调方法的异步处理任务,若多个服务端中任一服务器返回的执行状态为成功,则确定异步处理任务完成;对于调用第二回
调方法的异步处理任务,若多个服务端中所有服务器返回的执行状态均为成功,则确定异步处理任务完成。
[0014]在一可能的设计中,通过多个Promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,包括:对于多个Promise代理对象中的每一Promise代理对象,通过每一Promise代理对象中包含的数据处理接口,调用预设的数据返回方法获取多个服务端的数据处理结果;其中,多个Promise代理对象包括面向同步流程的第一Promise代理对象和/或面向异步流程的第二Promise代理对象,数据处理结果包括多个服务端各自对应的返回值和/或异常值。
[0015]在一可能的设计中,第一Promise代理对象对应的数据返回方法包括工厂方法,工厂方法用于从服务端获取Param数据类型的返回值和/或异常值。
[0016]在一可能的设计中,响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,包括:对异步处理任务中的多个待处理数据进行串行化处理,并将串行化处理后的多个待处理数据封装到远程调用请求中;向多个服务端分别发送远程调用请求。
[0017]在一可能的设计中,组合后的数据处理结果包括串行化处理的多个数据处理结果。
[0018]该方法还包括:若串行化处理的多个数据处理结果中包括异常值,并且异常值处于Promise链末尾,则确定异常值是否被处理;输出未被处理的异常值以及对应的堆栈信息。
[0019]在一可能的设计中,方法还包括:对于Promise代理对象包含的回调函数未处理过的变量参数,通过回调函数中设置的可选参数以及预设映射方式获取变量参数。
[0020]在一可能的设计中,方法还包括:通过第一回调方法添加与Promise代理对象构成竞争关系的超时Promise对象;若Promise代理对象的返回时间早于超时Promise对象的返回时间,则向监听器传递Promise代理对象的返回值;若超时Promise对象的返回时间早于Promise代理对象的返回时间,则确定Promise代理对象竞争失败,并向监听器传递Promise代理对象存在超时异常。
[0021]第二方面,本专利技术提供了一种业务处理装置,该装置包括:
[0022]请求模块,用于响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;
[0023]生成模块,用于生成多个远程调用请求对应的多个Promise代理对象,并组合多个Promise代理对象以得到目标Promise对象;
[0024]设置模块,用于在目标Promise对象上设置监听器;
[0025]传入模块,用于通过多个Promise代理对象分别接收多个服务端基于待处理数据得到的数据处理结果,并将接收到的数据处理结果传入目标Promise对象;
[0026]传递模块,用于通过目标Promise对象将组合后的数据处理结果传递给监听器,以使得本地业务通过监听器获取到组合后的数据处理结果。
[0027]第三方面,本专利技术实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至
少可以实现第一方面中的业务处理方法。
[0028]本专利技术实施例又提供了一种系统,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现上面描述的一种业务处理方法。
[0029]本专利技术实施例进一步提供了一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上面描述的一种业务处理方法。
[0030]本专利技术实施例中,采用Promise异步编程模式设计业务处理逻辑,具体地,响应于本地业务触发的远程处理任务,向执行远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;生成多个远程调用请求对应的多个Promise代理对象,并组合多个Promise代理对象以得到目标Promise对象;在目标Promis本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种业务处理方法,其特征在于,所述方法包括:响应于本地业务触发的远程处理任务,向执行所述远程处理任务的多个服务端分别发送远程调用请求,每个远程调用请求中包含与相应服务端对应的待处理数据;生成所述多个远程调用请求对应的多个Promise代理对象,并组合所述多个Promise代理对象以得到目标Promise对象;在所述目标Promise对象上设置监听器;通过所述多个Promise代理对象分别接收所述多个服务端基于所述待处理数据得到的数据处理结果,并将接收到的数据处理结果传入所述目标Promise对象;通过所述目标Promise对象将组合后的数据处理结果传递给所述监听器,以使得所述本地业务通过所述监听器获取到所述组合后的数据处理结果。2.根据权利要求1所述的业务处理方法,其特征在于,还包括:通过Promise代理对象中包含的回调函数接收异步处理任务的执行状态。3.根据权利要求2所述的业务处理方法,其特征在于,所述回调函数接口为λ函数;所述通过Promise代理对象中包含的回调函数接收异步处理任务的执行状态,包括:通过调用setSuccesss方法或setFailure方法传入所述λ函数,以接收用于指示所述异步处理任务执行状态的回调参数。4.根据权利要求2所述的业务处理方法,其特征在于,还包括:对于调用第一回调方法的异步处理任务,若所述多个服务端中任一服务器返回的执行状态为成功,则确定所述异步处理任务完成;对于调用第二回调方法的异步处理任务,若所述多个服务端中所有服务器返回的执行状态均为成功,则确定所述异步处理任务完成。5.根据权利要求1所述的业务处理方法,其特征在于,所述通过所述多个Promise代理对象分别接收所述多个服务端基于所述待处理数据得到的数据处理结果,包括:对于所述多个Promise代理对象中的每一Promise代理对象,通过所述每一Promise代理对象中包含的数据处理接口,调用预设的数据返回方法获取所述多个服务端的数据处理结果;其中,所述多个Promise代理对象包括面向同步流程的第一Promise代理对象和/或面向异步流程的第二Promise代理对象,所述数据处理结果包括所述多个服务端各自对应的返回值和/或异常值。6.根据权利要求5所述的业务处理方法,其特征在于,所述第一Promise代理对象对应的数据返回方法包括工厂方法,所述工厂方法用于从服务端获取Param数据类型的返回值和/或异常值。7.根据权利要求1所述的业务处理方法,其特征在于,所述响应于本地业务触发的远程处理任务,向执行所述远程处理任务...

【专利技术属性】
技术研发人员:陈正彭志彬梁景亮陈军
申请(专利权)人:完美世界重庆互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1