本申请涉及数据处理领域,具体涉及一种业务重试方法、设备、计算机可读存储介质及程序产品,用于解决在调用业务服务过程中,可能会因网络波动、应用假死等因素影响出现服务无响应的情况,造成业务功能无法正常实现的问题。该方法包括:调用并执行目标业务服务对应的目标业务逻辑;确定目标业务服务响应异常时,获取对目标业务服务对应的方法设置的重试注解;根据重试注解对方法生成上下文数据(包括执行时间和方法的配置信息),并存储到重试队列中;对任一重试队列中的目标上下文数据,确定到达目标上下文数据对应的目标执行时间时,生成与目标上下文数据对应的目标业务服务方法类,通过目标业务服务方法类进行至少一次的重试执行目标业务逻辑。行目标业务逻辑。行目标业务逻辑。
【技术实现步骤摘要】
业务重试方法、设备、计算机可读存储介质及程序产品
[0001]本申请涉及数据处理领域,具体涉及一种业务重试方法、设备、计算机可读存储介质及程序产品。
技术介绍
[0002]在目前的业务处理过程中,通常会调用多个服务以实现业务功能。在调用过程中,可能会由于网络波动、应用假死等因素影响出现服务无响应的情况,造成业务功能无法正常实现。
技术实现思路
[0003]本申请实施例提供一种业务重试方法、设备、计算机可读存储介质及程序产品,用于解决在调用业务服务过程中,可能会由于网络波动、应用假死等因素影响出现服务无响应的情况,造成业务功能无法正常实现的问题。
[0004]第一方面,本申请实施例提供一种业务重试方法。所述方法包括:
[0005]调用并执行目标业务服务对应的目标业务逻辑;
[0006]确定所述目标业务服务响应异常时,获取预先对所述目标业务服务对应的方法设置的重试注解;
[0007]根据所述重试注解对所述方法生成上下文数据,其中所述上下文数据包括执行时间和所述方法的配置信息;
[0008]将所述上下文数据存储到重试队列中;
[0009]对任一所述重试队列中的目标上下文数据,确定到达所述目标上下文数据对应的目标执行时间时,生成与所述目标上下文数据对应的目标业务服务方法类,通过目标业务服务方法类进行至少一次的重试执行所述目标业务逻辑。
[0010]在一种可能的实施例中,所述根据所述重试注解对所述方法生成上下文数据,具体包括:
[0011]根据所述重试注解对所述方法进行面向切面编程AOP切面拦截,生成上下文数据。
[0012]在一种可能的实施例中,所述上下文数据还包括降级策略信息;
[0013]所述方法还包括:
[0014]若通过目标业务服务方法类进行预设次数的重试执行目标业务逻辑均失败,则根据所述降级策略信息降级调用所述目标业务服务。
[0015]在一种可能的实施例中,所述根据所述降级策略信息降级调用所述目标业务服务,具体包括:
[0016]调用所述目标业务服务的过程中,根据所述降级策略信息取消执行至少部分所述目标业务逻辑并返回错误信息。
[0017]在一种可能的实施例中,所述根据所述降级策略信息降级调用所述目标业务服务,具体包括:
[0018]调用所述目标业务服务的过程中,根据所述降级策略信息执行降级业务逻辑;
[0019]其中,所述降级业务逻辑为所述目标业务服务中预先定义的业务逻辑,且与所述目标业务逻辑为不同的业务逻辑。
[0020]在一种可能的实施例中,所述生成与所述目标上下文数据对应的目标业务服务方法类,通过目标业务服务方法类进行至少一次的重试执行所述目标业务逻辑,具体包括:
[0021]确定所述目标上下文数据对应的目标方法所对应的目标重试注解;
[0022]拦截所述目标重试注解对应的所述目标方法;
[0023]利用反射机制获取所述目标上下文数据中的配置信息,根据代理机制利用所述配置信息生成目标业务服务方法代理类,调用目标业务服务方法代理类进行至少一次的重试执行所述目标业务逻辑。
[0024]在一种可能的实施例中,所述将所述上下文数据存储到重试队列中,具体包括:
[0025]将所述上下文数据作为系统事件抛出,存储到重试队列中。
[0026]在一种可能的实施例中,所述重试队列为Redis队列。
[0027]第二方面,本申请提供一种电子设备,包括:
[0028]业务执行模块,用于调用并执行目标业务服务对应的目标业务逻辑;
[0029]重试模块,用于确定所述目标业务服务响应异常时,获取预先对所述目标业务服务对应的方法设置的重试注解;根据所述重试注解对所述方法生成上下文数据,其中所述上下文数据包括执行时间和所述方法的配置信息;将所述上下文数据存储到重试队列中;对任一所述重试队列中的目标上下文数据,确定到达所述目标上下文数据对应的目标执行时间时,生成与所述目标上下文数据对应的目标业务服务方法类,通过目标业务服务方法类进行至少一次的重试执行所述目标业务逻辑。
[0030]第三方面,本申请提供一种电子设备,包括:
[0031]存储器,用于存储程序指令;
[0032]处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一项所述的方法包括的步骤。
[0033]第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中任一项所述的方法。
[0034]第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
[0035]本申请有益效果如下:
[0036]本申请实施例提供的业务重试方法、设备、计算机可读存储介质及程序产品,从程序逻辑设计层面通过预先在程序代码中设置重试注解以进行逻辑补偿。从而在程序执行过程中,利用重试注解对业务服务对应的方法生成上下文数据以对业务逻辑进行重试,使得业务程序系统能够排除能够自行恢复的业务服务响应异常的不良影响,尽可能保证业务程序系统的功能正确实现。此外,本申请实施例提供的业务重试方法通过使用重试注解来实现重试机制,不需要对业务服务的程序代码进行直接的修改,实现了重试机制与业务服务的逻辑的解耦,能够减少程序的重复代码,降低模块间的耦合度,提高程序的可扩展性,提
升程序的可维护性。
附图说明
[0037]图1为一种现有的服务调用关系图;
[0038]图2为本申请实施例提供的一种业务重试方法的流程图之一;
[0039]图3为本申请实施例提供的一种业务重试方法的部分结构图;
[0040]图4为本申请实施例提供的一种业务重试方法的流程图之二;
[0041]图5为本申请实施例提供的一种电子设备的结构图之一;
[0042]图6为本申请实施例提供的一种电子设备的结构图之二。
具体实施方式
[0043]为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以按不同于此处的顺序执行所示出或描述的步骤。
[0044]本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种业务重试方法,其特征在于,包括:调用并执行目标业务服务对应的目标业务逻辑;确定所述目标业务服务响应异常时,获取预先对所述目标业务服务对应的方法设置的重试注解;根据所述重试注解对所述方法生成上下文数据,其中所述上下文数据包括执行时间和所述方法的配置信息;将所述上下文数据存储到重试队列中;对任一所述重试队列中的目标上下文数据,确定到达所述目标上下文数据对应的目标执行时间时,生成与所述目标上下文数据对应的目标业务服务方法类,通过目标业务服务方法类进行至少一次的重试执行所述目标业务逻辑。2.如权利要求1所述的方法,其特征在于,所述根据所述重试注解对所述方法生成上下文数据,具体包括:根据所述重试注解对所述方法进行面向切面编程AOP切面拦截,生成上下文数据。3.如权利要求1所述的方法,其特征在于,所述上下文数据还包括降级策略信息;所述方法还包括:若通过目标业务服务方法类进行预设次数的重试执行目标业务逻辑均失败,则根据所述降级策略信息降级调用所述目标业务服务。4.如权利要求3所述的方法,其特征在于,所述根据所述降级策略信息降级调用所述目标业务服务,具体包括:调用所述目标业务服务的过程中,根据所述降级策略信息取消执行至少部分所述目标业务逻辑并返回错误信息。5.如权利要求3所述的方法,其特征在于,所述根据所述降级策略信息降级调用所述目标业务服务,具体包括:调用所述目标业务服务的过程中,根据所述降级策略信息执行降级业务逻辑;其中,所述降级业务逻辑为所述目标业务服务中预先定义的业务逻辑,且与所述目标业务逻辑为不同的业务逻辑。6.如权利要求1所述的方法,其特征在于,所述生成与所述目标上下文数据对应的目标业务服务方法类,通过目标业务服务方法类进行至少一次的重试执行所述目标业务逻辑,具体包括:确定所述目标上下文数据对应的目标方法所对应的目标重试注解;拦截所述目标重试注...
【专利技术属性】
技术研发人员:梁飞,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。