异常补偿方法和装置制造方法及图纸

技术编号:24455201 阅读:15 留言:0更新日期:2020-06-10 15:20
本发明专利技术公开了一种异常补偿方法和装置,涉及计算机技术领域。其中,该方法包括:接收至少一个应用服务端提交的异常补偿任务,并将所述异常补偿任务保存至数据库;为各应用服务端下的异常补偿任务分别开启相应的执行线程,基于所述执行线程从所述数据库抓取异常补偿任务,以及,在所述异常补偿任务满足预设的执行条件的情况下,通过RPC调用方式执行所述异常补偿任务。通过以上步骤,不仅能够针对各应用服务端的异常统一进行补偿,实现异常补偿逻辑与应用服务端业务逻辑的解耦,降低开发成本,提高异常补偿逻辑的可维护性,而且能够优化异常补偿处理逻辑。

Abnormal compensation method and device

【技术实现步骤摘要】
异常补偿方法和装置
本专利技术涉及计算机
,尤其涉及一种异常补偿方法和装置。
技术介绍
应用系统(或应用服务端)的正常运行依赖于各种组件(比如Mysql、MQ、Redis)以及其它应用系统提供的各种服务。在应用服务端运行过程中,可能会发生各种异常情况。例如,在应用系统中,经常会有关键流程节点通过MQ异步通知下游系统的场景。在此类场景中,可能会出现发送MQ消息失败的异常情况。当应用系统出现异常情况时,现有技术中主要有以下几种异常处理方案:方案1、应用系统不对异常情况做任何处理;方案2、应用系统仅仅是捕捉异常、并以日志的形式打印异常类型等信息,但不对异常进行补偿;方案3、应用系统将异常信息进行本地持久化存储,然后根据应用系统设计的异常补偿处理逻辑对异常进行定时处理。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:第一、方案1对异常没有做任何处理,很可能影响系统整个业务流程的完整性和准确性,无法预估该异常对系统的整体影响。第二、方案2仅仅是打印异常信息,而未对异常进行补偿处理,会影响下游系统的业务逻辑的执行,且无法对异常及时进行人工干预。第三、方案3虽然对异常进行了补偿处理,但是其还存在以下问题:1、由于每个应用系统都需要设计异常补偿处理逻辑,异常补偿处理逻辑与系统正常的业务逻辑耦合在一起,导致异常补偿处理逻辑的可维护性差,而且,每个系统都开发异常补偿逻辑会增加开发成本;2、异常补偿处理逻辑不合理。比如,如果下游系统服务一直不可用,一直进行异常补偿任务重试会导致应用服务器负载过高,导致该系统其他业务的并发能力下降。
技术实现思路
有鉴于此,本专利技术提供一种异常补偿方法和装置,不仅能够针对各应用服务端的异常统一进行补偿,实现异常补偿逻辑与应用服务端业务逻辑的解耦,降低开发成本,提高异常补偿逻辑的可维护性,而且能够优化异常补偿处理逻辑。为实现上述目的,根据本专利技术的一个方面,提供了一种异常补偿方法。本专利技术的异常补偿方法包括:接收至少一个应用服务端提交的异常补偿任务,并将所述异常补偿任务保存至数据库;为各应用服务端下的异常补偿任务分别开启相应的执行线程,基于所述执行线程从所述数据库抓取异常补偿任务,以及,在所述异常补偿任务满足预设的执行条件的情况下,通过RPC调用方式执行所述异常补偿任务。可选地,所述方法还包括:在所述异常补偿任务不满足预设的执行条件的情况下,基于所述执行线程从所述数据库抓取下一个异常补偿任务。可选地,所述预设的执行条件包括:所述异常补偿任务的任务状态为创建状态,和/或,当前时间满足所述异常补偿任务的执行时间策略;其中,所述创建状态表明所述异常补偿任务尚未执行成功且执行失败次数小于或等于任务挂起阈值。可选地,所述方法还包括:在所述通过RPC调用方式执行所述异常补偿任务的步骤之后,若所述异常补偿任务执行失败,更新所述异常补偿任务的执行失败次数;以及,在更新后的执行失败次数大于任务挂起阈值的情况下,将所述异常补偿任务的任务状态更新为挂起状态;在所述异常补偿任务执行成功的情况下,将所述异常补偿任务的任务状态更新为成功状态。可选地,所述方法还包括:在执行所述将所述异常补偿任务保存至数据库的步骤之前,确认所述数据库存在与所述异常补偿任务携带的应用服务端标识匹配的应用接入信息,和/或,确认所述异常补偿任务不是重复提交;其中,所述应用接入信息包括:接入的应用服务端的标识。可选地,所述方法还包括:对所述数据库中的异常补偿任务的执行情况进行监控;在同一应用服务端下的异常补偿任务总数或同一任务类型下的异常补偿任务总数超过第一阈值的情况下,触发报警操作;和/或,在同一应用服务端下的处于挂起状态的异常补偿任务总数或同一任务类型下处于挂起状态的异常补偿任务总数超过第二阈值的情况下,触发报警操作。可选地,所述方法还包括:配置所述应用接入信息,并将所述应用接入信息保存至所述数据库。为实现上述目的,根据本专利技术的另一方面,提供了一种异常补偿装置。本专利技术的异常补偿装置包括:提交模块,用于接收至少一个应用服务端提交的异常补偿任务,并将所述异常补偿任务保存至数据库;执行模块,用于为各应用服务端下的异常补偿任务分别开启相应的执行线程,基于所述执行线程从所述数据库抓取异常补偿任务,以及,在所述异常补偿任务满足预设的执行条件的情况下,通过RPC调用方式执行所述异常补偿任务。可选地,所述执行模块,还用于在所述异常补偿任务不满足预设的执行条件的情况下,从所述数据库抓取下一个异常补偿任务。可选地,所述执行模块配置的所述预设的执行条件包括:所述异常补偿任务的任务状态为创建状态,和/或,当前时间满足所述异常补偿任务的执行时间策略;其中,所述创建状态表明所述异常补偿任务尚未执行成功且执行失败次数小于或等于挂起阈值。可选地,所述执行模块,还用于在所述异常补偿任务执行失败的情况下,更新所述异常补偿任务的执行失败次数;以及,在更新后的执行失败次数大于任务挂起阈值的情况下,将所述异常补偿任务的任务状态更新为挂起状态;所述执行模块,还用于在所述异常补偿任务执行成功的情况下,将所述异常补偿任务的任务状态更新为成功状态。可选地,所述提交模块,还用于在执行所述将所述异常补偿任务保存至数据库的操作之前,确认所述数据库存在与所述异常补偿任务携带的应用服务端标识匹配的应用接入信息,和/或,确认所述异常补偿任务不是重复提交;其中,所述应用接入信息包括:接入的应用服务端的标识。可选地,所述装置还包括:监控模块,用于对所述数据库中的异常补偿任务的执行情况进行监控;还用于在同一应用服务端下的异常补偿任务总数或同一任务类型下的异常补偿任务总数超过第一阈值的情况下,触发报警操作;和/或,在同一应用服务端下的处于挂起状态的异常补偿任务总数或同一任务类型下处于挂起状态的异常补偿任务总数超过第二阈值的情况下,触发报警操作。可选地,所述装置还包括:配置模块,用于配置所述应用接入信息,并将所述应用接入信息保存至所述数据库。为实现上述目的,根据本专利技术的再一个方面,提供了一种电子设备。本专利技术的电子设备,包括:一个或多个处理器;以及,存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术的异常补偿方法。为实现上述目的,根据本专利技术的又一个方面,提供了一种计算机可读介质。本专利技术的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术的异常补偿方法。上述专利技术中的一个实施例具有如下优点或有益效果:通过将至少一个应用服务端提交的异常补偿任务保存至数据库,并通过RPC调用方式执行所述异常补偿任务,能够针对各应用服务端的异常统一进行补偿,实现异常补偿逻辑与应用服务端业务逻辑的解耦,降低开发成本,提高异常补偿逻辑的可维护性;通过为每个应用服务端开启相应的执行线程,基于所述执行线程从所述数据库抓取异常补偿任务,并在满足预设执行条件的情况下执行异常补偿任务等步骤本文档来自技高网
...

【技术保护点】
1.一种异常补偿方法,其特征在于,所述方法包括:/n接收至少一个应用服务端提交的异常补偿任务,并将所述异常补偿任务保存至数据库;/n为各应用服务端下的异常补偿任务分别开启相应的执行线程,基于所述执行线程从所述数据库抓取异常补偿任务,以及,在所述异常补偿任务满足预设的执行条件的情况下,通过RPC调用方式执行所述异常补偿任务。/n

【技术特征摘要】
1.一种异常补偿方法,其特征在于,所述方法包括:
接收至少一个应用服务端提交的异常补偿任务,并将所述异常补偿任务保存至数据库;
为各应用服务端下的异常补偿任务分别开启相应的执行线程,基于所述执行线程从所述数据库抓取异常补偿任务,以及,在所述异常补偿任务满足预设的执行条件的情况下,通过RPC调用方式执行所述异常补偿任务。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述异常补偿任务不满足预设的执行条件的情况下,基于所述执行线程从所述数据库抓取下一个异常补偿任务。


3.根据权利要求1所述的方法,其特征在于,所述预设的执行条件包括:所述异常补偿任务的任务状态为创建状态,和/或,当前时间满足所述异常补偿任务的执行时间策略;其中,所述创建状态表明所述异常补偿任务尚未执行成功且执行失败次数小于或等于任务挂起阈值。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述通过RPC调用方式执行所述异常补偿任务的步骤之后,若所述异常补偿任务执行失败,更新所述异常补偿任务的执行失败次数;以及,在更新后的执行失败次数大于任务挂起阈值的情况下,将所述异常补偿任务的任务状态更新为挂起状态;在所述异常补偿任务执行成功的情况下,将所述异常补偿任务的任务状态更新为成功状态。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在执行所述将所述异常补偿任务保存至数据库的步骤之前,确认所述数据库存在与所述异常补偿任务携带的应用服务端标识匹配的应用接入信息,和/或,确认所述异常补偿任务不是重复提交;其中,所述应用接入信息包括:接入的应用服务端的标识。


6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述数据库中的异常补偿任务的执行情况进行监控;在同一应用服务端下的异常补偿任务总数或同一任务类型下的异常补偿任务总数超过第一阈值的情况下,触发报警操作;和/或,在同一应用服务端下的处于挂起状态的异常补偿任务总数或同一任务类型下处于挂起状态的异常补偿任务总数超过第二阈值的情况下,触发报警操作。


7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
配置所述应用接入信息,并将所述应用接入信息保存至所述数据库。


8.一种异常补偿装置,其特征在于,所述装置包括:
提交模块,用于接收至少一个应用服务端提交的异常补偿任务,并将所述异常补偿任务保存至数据库;
执行模块,用于为各应用服务端下的异常补偿任务分别开...

【专利技术属性】
技术研发人员:杜广东
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:北京;11

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

1