一种业务处理方法及装置制造方法及图纸

技术编号:18576699 阅读:26 留言:0更新日期:2018-08-01 11:48
本申请实施例公开了一种业务处理方法及装置。所述方法包括:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;对所述掉单业务活动记录对应的业务活动进行重试执行。利用本申请实施例,可以实现无需在当前线程中同步重试执行掉单业务活动,而是可以在预配置的策略的定时触发下,异步地重试执行掉单业务活动,因此,即使业务系统重启或崩溃,仍然可以在业务系统恢复正常后再次重试。

A service processing method and device

The application embodiment discloses a business processing method and device. The methods described include: receiving a service retry trigger message, the business retry trigger message is sent regularly according to a pre configured retry interval strategy, and the retry interval strategy includes a fixed retry interval strategy or an elastic retry interval strategy based on a dynamic expression; and the business activities included according to the business activities are recorded. The state information and retrial state information determine the record of the single business activities in the records of the various business activities, and retry the execution of the business activities that correspond to the records of the single business activity records. Using this application example, it can be realized without synchronous retrying execution of single business activity in the current thread, but can retry execution of single business asynchronously under the timing of the pre configured policy, so even if the business system restarts or crashes, it can still retry again after the business system is restored to normal.

【技术实现步骤摘要】
一种业务处理方法及装置
本申请涉及计算机软件
,尤其涉及一种业务处理方法及装置。
技术介绍
随着计算机技术和互联网技术的迅速发展,很多业务都可以在网上进行,比如电子金融业务、电商业务等。一般地,可以由流程引擎将业务所涉及的一个或多个业务活动进行编排,构成相应的业务流程,再按照业务流程顺序执行业务活动,从而实现业务目标。业务流程中的业务活动执行通常会涉及两端之间的方法调用,一种典型的调用是调用端向服务端发起的远程方法调用(RemoteProcedureCall,RPC)。在实际应用中,RPC可能会执行失败,则相应的业务活动也会执行异常,进而可能导致业务掉单。从用户角度而言,由于发生业务掉单,用户即使已经支付了业务代价,却无法获得相应的业务服务,体验很差。针对上述业务活动执行异常的情况导致业务掉单的问题,现有技术中通常采用同步重试的方式解决。具体地,在RPC执行失败导致业务活动执行异常时,可以在当前线程中同步重试执行该RPC,进而实现对应的业务活动重试执行。但是,上述现有技术中同步重试的方式的稳定性较差,在业务系统重启或崩溃时会失去同步重试的状态,导致业务活动无法再重试执行。
技术实现思路
本申请实施例提供一种业务处理方法及装置,用以解决如下技术问题:上述现有技术中同步重试的方式的稳定性较差,在业务系统重启或崩溃时会失去同步重试的状态,导致业务活动无法再重试执行。为解决上述技术问题,本申请实施例是这样实现的:本申请实施例提供的一种业务处理方法,包括:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;对所述掉单业务活动记录对应的业务活动进行重试执行。本申请实施例提供的一种业务处理装置,包括:接收模块,接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;确定模块,根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;重试模块,对所述掉单业务活动记录对应的业务活动进行重试执行。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:可以实现无需在当前线程中同步重试执行掉单业务活动,而是可以在预配置的策略的定时触发下,异步地重试执行掉单业务活动,因此,即使业务系统重启或崩溃,仍然可以在业务系统恢复正常后再次重试,因此,可以部分或全部地解决现有技术中的问题。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中调用端和服务端之间的远程方法调用过程示意图;图2为现有技术中的一种消息服务的原理示意图;图3为本申请实施例提供的一种业务处理方法的流程示意图;图4为现有技术中的一种业务系统的业务流程执行原理示意图;图5为现有技术中的金融业务系统的一种业务活动模型;图6为本申请实施例提供的一种业务活动模型的示意图;图7为本申请实施例提供的集群环境下,上述业务处理方法的一种具体实施方案的原理示意图;图8为本申请实施例提供的图7对应的交互示意图;图9为本申请实施例提供的对应于图3的一种业务处理装置的结构示意图。具体实施方式本申请实施例提供一种业务处理方法及装置。为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
技术介绍
中对一种现有技术进行了简单说明,为了便于理解,结合图1、图2对现有技术进一步地说明。图1为现有技术中调用端和服务端之间的远程方法调用(RPC)过程示意图。对于该RPC过程,于本申请的方案相关的主要有以下背景情况:在RPC请求过程中由于超时而未收到请求结果,或者应答状态不明确等原因,需要考虑重试执行来保证得到明确的调用返回结果;调用端对服务端的关系如果不是强依赖(也即,无需当下立即需要调用返回结果),一般会建议使用基于消息服务(比如msgbroker等)重试的方式来驱动后续业务的执行。如果是强依赖关系,当RPC具体为查询请求时,若应答失败,可以不重试,直接返回处理失败,而当RPC具体为会触发服务端数据状态变化的请求时,则需要实现基于业务数据的同步重试机制来保证数据的最终一致性。比如,在第三方电子支付业务中,第三方支付系统在与外部银行对接时涉及直连请求的强依赖调用,当调用失败时,会引发业务掉单,因此一般采用同步重试的方式重试执行掉单业务。在上面的说明中,提到了
技术介绍
中的同步重试的方式,除此之外,还提供了另一种现有技术:基于消息服务重试。图2为现有技术中的一种消息服务的原理示意图。在图2中,当异常发生时调用端发送可靠的消息到消息服务系统(msgbroker)后结束当前本地事务,从而依赖msgbroker的消息重复推送来执行后续重试。但是,上述两种方式均存在问题,具体如下。对于同步重试的方案,其稳定性较差,在业务系统重启或崩溃时会失去同步重试的状态,导致业务活动无法再重试执行;不仅如此,由于是在当前线程中同步执行的,因此,容易阻塞计算资源,以至于导致业务系统负载恶化。对于基于消息服务重试的方式,其重试的策略单一,无法基于具体的业务场景来定制重试间隔;需要在序列化和反序列化有所开销。本申请的方案可以部分或全部地解决上述问题。下面对本申请的方案进行详细说明。图3为本申请实施例提供的一种业务处理方法的流程示意图。从程序角度而言,该流程的执行主体可以是业务系统相关的功能模块;从设备角度而言,该流程的执行主体可以包括但不限于可搭载所述功能模块的以下设备:计算机集群、个人计算机、大中型计算机、手机、平板电脑、智能可穿戴设备、车机等。本申请对业务的具体内容并不做限定,只要是可以在网上进行的业务均可适用,比如,金融业务、电子支付业务、通讯业务、电子游戏业务等。图3中的流程可以包括以下步骤:S301:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略。在本申请实施例中,重试间隔策略可以根据具体的业务场景需要进行定制。当采用了固定重试间隔策略时,业务重试触发消息可以是以固定重试间隔策略对应的固定重试间隔作为定时间隔,定时发送的,比如,每秒钟发送一次或每分钟发送一次等。当采用了基于动态表达式的弹性重试间隔策略,业务重试触发消息可以是以弹性重试间隔策略对应的特定间隔作为定时间隔,定时发送的,所述弹性重试间隔策略对应的各重试间隔均为所述特定间隔的整倍数。对于多次重试的同一业务活动,重试间隔可以不相同本文档来自技高网
...

【技术保护点】
1.一种业务处理方法,其特征在于,包括:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;对所述掉单业务活动记录对应的业务活动进行重试执行。

【技术特征摘要】
1.一种业务处理方法,其特征在于,包括:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;对所述掉单业务活动记录对应的业务活动进行重试执行。2.如权利要求1所述的方法,其特征在于,当所述重试间隔策略包括固定重试间隔策略,所述业务重试触发消息是以所述固定重试间隔策略对应的固定重试间隔作为定时间隔,定时发送的;当所述重试间隔策略包括基于动态表达式的弹性重试间隔策略,所述业务重试触发消息是以弹性重试间隔策略对应的特定间隔作为定时间隔,定时发送的,所述弹性重试间隔策略对应的各重试间隔均为所述特定间隔的整倍数。3.如权利要求1所述的方法,其特征在于,所述根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录,具体包括:根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中,确定业务活动状态反映对应的业务活动需重试,且重试状态信息反映对应的业务活动需本次重试的业务活动记录,作为确定的掉单业务活动记录。4.如权利要求3所述的方法,其特征在于,所述在所述各业务活动记录中确定掉单业务活动记录,具体包括:根据预配置的重试范围策略,在属于所述重试范围策略所指定范围的所述各业务活动记录中确定掉单业务活动记录,所述范围包括业务范围和/或时间范围和/或数量范围和/或重试次数范围。5.如权利要求3所述的方法,其特征在于,所述重试状态信息包括已重试次数和下次重试执行时间。6.如权利要求5所述的方法,其特征在于,所述动态表达式是基于重试次数的动态表达式;当所述重试间隔策略包括基于动态表达式的弹性重试间隔策略,所述对所述掉单业务活动记录对应的业务活动进行重试执行后,所述方法还包括:若重试执行失败,对对应的重试状态信息包括的已重试次数进行更新;以及,根据更新的已重试次数,确定所述重试次数;将确定的所述重试次数代入所述动态表达式进行计算,并根据计算结果,对所述重试状态信息包括的下次重试执行时间进行更新。7.如权利要求4所述的方法,其特征在于,所述方法应用于集群中,所述各业务活动记录保存于一张或多张数据表中;所述接收业务重试触发消息,具体包括:所述集群中的第一机器接收业务重试触发消息;所述根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录,具体包括:所述第一机器对包含各业务活动记录的各数据表进行分表操作,得到多个分表,并分发给所述集群中的多个第二机器,各所述第二机器得到的分表不相同;所述第二机器根据所述重试范围策略,以及得到的分表中包含各业务活动记录包含的业务活动状态信息和重试状态信息,确定并加载所述分表对应的掉单业务活动记录,根据加载的掉单业务活动记录,生成相应的重试执行任务,并分发给多个所述集群中的多个第三机器,各所述第三机器得到的重试执行任务不相同;所述对所述掉单业务活动记录对应的业务活动进行重试执行,具体包括:所述第三机器通过执行得到的重试执行任务,完成对对应的掉单业务活动记录对应的业务活动的重试执行。8.权利要求7所述的方法,其特征在于,所述第三机器执行得到的重试执行任务,具体包括:所述第三机器触发流程引擎执行得到的重试执行任务。9.权利要求7所述的方法,其特征在于,所述集群处于分布式环境中,所述重试间隔策略、所述重试范围策略预配置于所述分布式环境对应的分布式资源管理设备和/或调度中心设备上;所述业务重试触发消息由所述调度中心设备发送。10.一种业务处理装置,其特征在于,包括:接收模块,接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试...

【专利技术属性】
技术研发人员:吕仁琦樊宏伟郑予清刘义
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1