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.一种业务处理方法,其特征在于,包括:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;对所述掉单业务活动记录对应的业务活动进行重试执行。
【技术特征摘要】
1.一种业务处理方法,其特征在于,包括:接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试间隔策略定时发送的,所述重试间隔策略包括固定重试间隔策略或基于动态表达式的弹性重试间隔策略;根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录;对所述掉单业务活动记录对应的业务活动进行重试执行。2.如权利要求1所述的方法,其特征在于,当所述重试间隔策略包括固定重试间隔策略,所述业务重试触发消息是以所述固定重试间隔策略对应的固定重试间隔作为定时间隔,定时发送的;当所述重试间隔策略包括基于动态表达式的弹性重试间隔策略,所述业务重试触发消息是以弹性重试间隔策略对应的特定间隔作为定时间隔,定时发送的,所述弹性重试间隔策略对应的各重试间隔均为所述特定间隔的整倍数。3.如权利要求1所述的方法,其特征在于,所述根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录,具体包括:根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中,确定业务活动状态反映对应的业务活动需重试,且重试状态信息反映对应的业务活动需本次重试的业务活动记录,作为确定的掉单业务活动记录。4.如权利要求3所述的方法,其特征在于,所述在所述各业务活动记录中确定掉单业务活动记录,具体包括:根据预配置的重试范围策略,在属于所述重试范围策略所指定范围的所述各业务活动记录中确定掉单业务活动记录,所述范围包括业务范围和/或时间范围和/或数量范围和/或重试次数范围。5.如权利要求3所述的方法,其特征在于,所述重试状态信息包括已重试次数和下次重试执行时间。6.如权利要求5所述的方法,其特征在于,所述动态表达式是基于重试次数的动态表达式;当所述重试间隔策略包括基于动态表达式的弹性重试间隔策略,所述对所述掉单业务活动记录对应的业务活动进行重试执行后,所述方法还包括:若重试执行失败,对对应的重试状态信息包括的已重试次数进行更新;以及,根据更新的已重试次数,确定所述重试次数;将确定的所述重试次数代入所述动态表达式进行计算,并根据计算结果,对所述重试状态信息包括的下次重试执行时间进行更新。7.如权利要求4所述的方法,其特征在于,所述方法应用于集群中,所述各业务活动记录保存于一张或多张数据表中;所述接收业务重试触发消息,具体包括:所述集群中的第一机器接收业务重试触发消息;所述根据各业务活动记录包含的业务活动状态信息和重试状态信息,在所述各业务活动记录中确定掉单业务活动记录,具体包括:所述第一机器对包含各业务活动记录的各数据表进行分表操作,得到多个分表,并分发给所述集群中的多个第二机器,各所述第二机器得到的分表不相同;所述第二机器根据所述重试范围策略,以及得到的分表中包含各业务活动记录包含的业务活动状态信息和重试状态信息,确定并加载所述分表对应的掉单业务活动记录,根据加载的掉单业务活动记录,生成相应的重试执行任务,并分发给多个所述集群中的多个第三机器,各所述第三机器得到的重试执行任务不相同;所述对所述掉单业务活动记录对应的业务活动进行重试执行,具体包括:所述第三机器通过执行得到的重试执行任务,完成对对应的掉单业务活动记录对应的业务活动的重试执行。8.权利要求7所述的方法,其特征在于,所述第三机器执行得到的重试执行任务,具体包括:所述第三机器触发流程引擎执行得到的重试执行任务。9.权利要求7所述的方法,其特征在于,所述集群处于分布式环境中,所述重试间隔策略、所述重试范围策略预配置于所述分布式环境对应的分布式资源管理设备和/或调度中心设备上;所述业务重试触发消息由所述调度中心设备发送。10.一种业务处理装置,其特征在于,包括:接收模块,接收业务重试触发消息,所述业务重试触发消息是根据预配置的重试...
【专利技术属性】
技术研发人员:吕仁琦,樊宏伟,郑予清,刘义,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。