CN114443325A - 一种接口调用异常的异步重试方法及系统 - Google Patents
一种接口调用异常的异步重试方法及系统 Download PDFInfo
- Publication number
- CN114443325A CN114443325A CN202210105683.1A CN202210105683A CN114443325A CN 114443325 A CN114443325 A CN 114443325A CN 202210105683 A CN202210105683 A CN 202210105683A CN 114443325 A CN114443325 A CN 114443325A
- Authority
- CN
- China
- Prior art keywords
- retry
- interface
- server
- request
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种接口调用异常的异步重试方法及系统,包括:当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。本发明通过重试服务器端异步调用失败接口进行重试,无需业务端自己实现重试,只需提供业务重试处理逻辑,重试调度由重试服务器端完成即可,通过设置预设重试次数,业务接口调用失败后可以异步多次调用,保证了业务端的高可用;通过可设置多个重试服务器端,多个业务无需每个业务端都实现自己的重试功能,只需对接重试服务器端即可,提高了业务交付效率。
Description
技术领域
本发明涉及接口调用技术领域,特别是涉及一种接口调用异常的异步重试方法及控制方法。
背景技术
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性;分布式系统具有能实现资源共享、加快计算速度、可靠性高、通信方便快捷等优点,在计算机网络方面占据重要角色。
然而,在分布式系统处理过程中,系统之间调用失败给系统交互的稳定性和可靠性以及一致性等都带来了巨大的挑战,系统调用失败后如果回滚和终止后续的操作客户体验效果极差,系统的可用性大大降低。
现有技术中根据调用失败的情况进行异步补偿的方法为,调用失败以后同步进行重试,直到接口返回响应结果;但是该方法有许多缺陷:同步重试会阻塞当前的处理流程,影响整体的处理时效;重试模式单一,重试时不能灵活的配置重试策略;被调用方系统恢复后,不能重启重试操作;对程序有侵入性。
发明内容
鉴于上述问题,本发明实施例提供了一种克服上述问题或者至少部分地解决上述问题的一种接口调用异常的异步重试方法及系统。
在本发明一实施例中提供了一种接口调用异常的异步重试方法,所述方法涉及业务端和重试服务器端,当所述业务端与目标终端之间的接口调用失败时,用所述业务端于发送重试请求至所述重试服务器端,其中,所述重试请求包括接口参数和重试逻辑;
所述方法包括如下步骤:
当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
进一步地,所述当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口的步骤,包括:
当所述重试请求满足重试条件时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
当所述重试请求不满足重试条件,所述重试服务器端生成失败通知,并发送所述失败通知至客户端。
进一步地,所述当所述重试请求满足重试条件时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口的步骤,包括:
所述重试服务器端通过第一定时器扫描所述重试请求的任务元数据的执行状态;
当所述重试请求的重试次数低于或等于所述预设重试次数,则所述重试请求满足重试条件;
所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口。
进一步地,所述当所述重试请求不满足重试条件,所述重试服务器端生成失败通知,并发送所述失败通知至客户端的步骤,包括:
所述重试服务器端通过第一定时器扫描所述重试请求的任务元数据的执行状态;
当所述重试请求的重试次数超出预设重试次数,则所述重试请求不满足重试条件;
所述重试服务器端生成失败通知,并发送所述失败通知至客户端。
进一步地,所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功的步骤,包括:
所述重试服务器端对所述重试请求的任务元数据进行处理;
所述重试服务器端将处理后的所述重试请求的任务发送至定时队列进行排序,并设为准备状态;
所述重试服务器端依据所述定时队列中的任务元数据和所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
进一步地,所述重试服务器端对所述重试请求的任务元数据进行处理的步骤,包括:
所述重试服务器端依据所述重试请求的任务元数据,设定所述重试请求的任务执行时间。
进一步地,所述重试服务器端将处理后的所述重试请求的任务发送至定时队列进行排序,并设为准备状态的步骤,包括:
所述重试服务器端将处理后的所述重试请求的任务标识存储在有序队列中;
所述重试服务器端通过第二定时器读取所述有序队列中的任务标识,并依据所述任务标识获取延迟时间大于或等于任务执行时间的当前任务元数据;
所述重试服务器端依据所述当前任务元数据,将对应的任务放入到对应的准备队列中;
所述重试服务器端设置所述准备队列中的所述当前任务数据为准备状态。
一种计算机设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述所述的一种接口调用异常的异步重试方法。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上述所述的一种接口调用异常的异步重试方法。
本申请具有以下优点:
在本申请的实施例中,通过当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。本发明通过重试服务器端异步调用失败接口进行重试,无需业务端自己实现重试,只需提供业务重试处理逻辑,重试调度由重试服务器端完成即可,通过设置预设重试次数,业务接口调用失败后可以异步多次调用,保证了业务端的高可用;通过可设置多个重试服务器端,多个业务无需每个业务端都实现自己的重试功能,只需对接重试服务器端即可,提高了业务交付效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种接口调用异常的异步重试方法的步骤流程图;
图2是本发明的一种接口调用异常的异步重试系统的结构框图;
图3是本发明的一种计算机设备的结构示意图;
图4本申请一具体实施例提供的一种接口调用异常的异步重试方法的步骤流程图;
图5为图4中定时队列的结构框图;
图6为图4中通知模块的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1-图3所示,参照图1,示出了本发明的一种接口调用异常的异步重试方法,所述方法涉及业务端和重试服务器端,当所述业务端与目标终端之间的接口调用失败时,用所述业务端于发送重试请求至所述重试服务器端,其中,所述重试请求包括接口参数和重试逻辑;
所述方法包括如下步骤:
S110、当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
S120、所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功;
在本申请的实施例中,通过当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。本发明通过重试服务器端异步调用失败接口进行重试,无需业务端自己实现重试,只需提供业务重试处理逻辑,重试调度由重试服务器端完成即可,通过设置预设重试次数,业务接口调用失败后可以异步多次调用,保证了业务端的高可用;通过可设置多个重试服务器端,多个业务无需每个业务端都实现自己的重试功能,只需对接重试服务器端即可,提高了业务交付效率。
下面,将对本示例性实施例中一种接口调用异常的异步重试方法作进一步地说明。
如所述步骤S110所述,当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口,其中,所述重试请求包括接口参数和重试逻辑。
需要说明的是,业务端(即业务系统)与目标终端之间的接口调用,每个接口会有特定的接口参数,当所述重试服务器端接收到所述业务系统发送的重试请求时,所述重试服务器端需要依据所述接口参数确定业务系统调用的是哪一个接口,以便于确定后期需要执行的重试逻辑。
在本发明一实施例中,可以结合下列描述进一步说明步骤S110所述“当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口”的具体过程。
需要说明的是,当所述重试服务器端接收到所述重试请求后,会将所述重试请求的任务元数据存放在数据库中,在本申请实施例中,优选为Mysql数据库(Mysql JobPool),Mysql是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
如下列步骤所述,当所述重试请求满足重试条件时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
如下列步骤所述,当所述重试请求不满足重试条件,所述重试服务器端生成失败通知,并发送所述失败通知至客户端。
作为一种示例,所述重试服务器端通过第一定时器扫描所述重试请求的任务元数据的执行状态,其中,所述第一定时器(First Timer)为一个异步独立线程,通过FirstTimer实时扫描Mysql Job Pool中重试请求的任务元数据,当所述重试请求的重试次数低于或等于所述预设重试次数,则所述重试请求满足重试条件,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口,具体地,例如所述预设重试次数设置为3次,当第一次重试失败后,会带上失败的标识,第一定时器扫描到带上失败标识的重试任务的重试次数少于3次,则允许再次进行重试逻辑执行;当所述重试请求的重试次数超出预设重试次数,即意味着在预设重试次数内经过多次重试均重试失败,则所述重试请求不满足重试条件,所述重试服务器端生成失败通知,并发送所述失败通知至客户端,进行及时预警,以便提前发现问题,人工接入处理,减小业务调用失败而造成损失,其中,预警方式支持可配置,而且可以通过API灵活对接新的通知方式,如发送至邮箱(Email)、手机(Phone)、钉钉(dingding)或微信(Wechat)等。
如所述步骤S110所述,所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
在本发明一实施例中,可以结合下列描述进一步说明步骤S120所述“所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功”的具体过程。
如下列步骤所述,所述重试服务器端对所述重试请求的任务元数据进行处理。
作为一种示例,所述重试服务器端依据所述重试请求的任务元数据,设定所述重试请求的任务执行时间;具体为,可通过设置固定的时间间隔触发重试,或采用用户自定义表达式,例如5m 30m 1h 2h 5h表示5分钟后执行,如果5分钟后重试任然失败,那么30分钟后重试,依次类推,如果成功立即终止任务,失败则到最后一个时间结点触发重试完成后终止任务,全部重试结点都执行仍然重试失败,那么预警,通知技术或者IT等相关人员,人工接入处理。
如下列步骤所述,所述重试服务器端将处理后的所述重试请求的任务发送至定时队列进行排序,并设为准备状态。
作为一种示例,所述重试服务器端将处理后的所述重试请求的任务标识存储在有序队列(Bucket)中,其中,有序队列是一组以时间为维度的有序队列,用来存放所有需要延迟的任务(Job),这里只存放Job Id,在本申请实施例中,所述有序队列采用redis来实现,也可以通过自定义有序队列来实现,redis为了触发任务,根据topic分为不同的队列;所述重试服务器端通过第二定时器(Second Timer)读取所述有序队列中的任务标识,并依据所述任务标识获取延迟时间大于或等于任务执行时间的当前任务元数据,其中,所述第二定时器(Second Timer)也为一个异步独立线程;所述重试服务器端依据所述当前任务元数据,将对应的任务放入到对应的准备队列(Ready Queue)中,具体地,Second Timer负责实时扫描各个Bucket,并将delay时间大于等于当前时间的Job放入到对应的Ready Queue;所述重试服务器端设置所述Ready Queue中的所述当前任务数据为Ready状态,在本申请实施例中,Ready Queue采用mq来通知消费者,以供消费程序消费,消费者处理业务重试逻辑。
需要说明的是,一个重试请求会有很多任务数据,采用redis存储任务的关键信息ID,Timer不断去读取redis里面的任务是否到达重试策略的一个倒计时间,不用每次都要从Job pool大量的数据信息中去读取,通过redis一过滤的话数据量会小很多,大大提高提高执行效率,依据读取到的任务ID到Job pool去找到详细信息给到mq去异步执行重试过程。
如下列步骤所述,所述重试服务器端依据所述定时队列中的任务元数据和所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
在本申请的实施例中,主要分为两个模块:Retrying-client、Retrying-service;Retrying-client以SDK的方式提供,调用方系统需要实现SDK中定义的重试服务接口的具体重试逻辑;Retrying-service根据Retrying-client上报的服务异常信息,以及调用系统配置信息,负责重试调度监控以及预警功能。
需要说明的是,本发明涉及到的定义如下:
BizSystem(业务系统):可以完成某一段作业流程的应用;
Retrying(重试服务):集中调度业务系统执行失败的接口流程,按照业务系统在重试服务中注册的重试策略(次数、达到指定时间后判断是否超过重试次数),对失败的处理逻辑进行重试,直至成功;对于超过预设重试次数的业务逻辑,系统会发出预警提示;
Delay Queue延迟队列:存储重试业务逻辑元数据,并且根据延迟时间将任务调度到MQ的topic中;
Job:需要异步处理的任务;
Delay Queue Bucket:存储任务元数据的队列,会将不同的任务离散的存储在队列中;
Topic Job集合:供消费者来订阅,目前系统支持一个topic对应多种不同类型的job,可以支持按照job类型不同拆分topic;
Timer:通过独立线程来完成任务调度和失败监控通知(一个进程可以有很多线程,每条线程并行执行不同的任务);
Notifer:重试失败通知,支持邮件、钉钉、电话、微信等。
参照图4,在本发明一具体实施例中,所述方法具体包括如下步骤:其中,主要涉及三个模块:业务系统、重试调度、延迟队列;
业务系统调用接口发生异常,然后调用重试服务新增重试任务,重试任务调度根据业务系统配置信息,执行重试计划,重试超出业务系统配置规则限制则通过通知模块进行预警。
需要说明的是,参照图5,定时队列由4个部分组成:
Job Pool用来存放所有Job的元信息,可以用数据库来实现,本方案采用Mysql数据库。
Delay Bucket是一组以时间为维度的有序队列,用来存放所有需要延迟的Job(这里只存放Job Id),本方案采用redis来实现,也可以通过自定义有序队列来实现。
Timer负责实时扫描各个Bucket,并将delay时间大于等于当前时间的Job放入到对应的Ready Queue,本方案Ready Queue采用mq来通知消费者。
Ready Queue存放处于Ready状态的Job,以供消费程序消费,消费者处理业务重试逻辑。
参照图6所示为通知模块的工作流程图,具体包括:
异步独立线程实时扫描任务元数据的执行状态,对于已经重试次数超过预设次数且业务重试失败的job任务,及时预警,以便提前发现问题,人工接入处理,减小业务调用失败而造成损失。
预警方式支持可配置,而且可以通过API灵活对接新的通知方式。
与现有技术相比,本发明的有益效果:
1、业务系统不会因为每一个接口或者服务的调用失败而阻塞,提高了业务系统处理业务逻辑的效率,支持三种重试策略,业务系统可以根据实际的业务场景灵活选择。
1.1:corn表达式策略;
1.2:固定延时策略:以固定的时间间隔触发重试;
1.3:用户自定义表达式,例如5m 30m 1h 2h 5h表示5分钟后执行,如果5分钟后重试任然失败,那么30分钟后重试,依次类推,如果成功立即终止任务,失败则到最后一个时间结点触发重试完成后终止任务,全部重试结点都执行任然重试失败,那么预警,通知技术或者IT等相关人员,人工接入处理。
2、业务接口调用失败后可以异步多次调用,保证了业务系统的高可用;
3、业务接口调用失败后如果需要重试,无需自己实现重试,只需提供业务重试处理逻辑,重试调度由重试服务完成。
4、多个业务无需每个业务系统都实现自己的重试功能,只需对接重试服务即可,提高了业务交付效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本申请一实施例中,提供一种接口调用异常的重试系统,具体包括:
所述系统涉及业务端和重试服务器端,当所述业务端与目标终端之间的接口调用失败时,用所述业务端于发送重试请求至所述重试服务器端,其中,所述重试请求包括接口参数和重试逻辑;
包括:
接口确定模块110,用于当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
重试处理模块120,用于所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
参照图3,示出了本发明的一种接口调用异常的异步重试方法的计算机设备,具体可以包括如下:
上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,内存28,连接不同系统组件(包括内存28和处理单元16)的总线18。
总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,外围总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线18,微通道体系结构(MAC)总线18,增强型ISA总线18、音视频电子标准协会(VESA)局域总线18以及外围组件互连(PCI)总线18。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
内存28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得操作人员能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过I/O接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN)),广域网(WAN)和/或公共网络(例如因特网)通信。如图3所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图3中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元16、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统34等。
处理单元16通过运行存储在内存28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例所提供的一种接口调用异常的异步重试方法。
也即,上述处理单元16执行上述程序时实现:当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
在本申请一实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有实施例提供的一种接口调用异常的异步重试方法。
也即,给程序被处理器执行时实现:当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在操作人员计算机上执行、部分地在操作人员计算机上执行、作为一个独立的软件包执行、部分在操作人员计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到操作人员计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种接口调用异常的异步重试方法及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种接口调用异常的异步重试方法,所述方法涉及业务端和重试服务器端,其特征在于,当所述业务端与目标终端之间的接口调用失败时,用所述业务端于发送重试请求至所述重试服务器端,其中,所述重试请求包括接口参数和重试逻辑;
所述方法包括如下步骤:
当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
2.根据权利要求1所述的接口调用异常的异步重试方法,其特征在于,所述当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口的步骤,包括:
当所述重试请求满足重试条件时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
当所述重试请求不满足重试条件,所述重试服务器端生成失败通知,并发送所述失败通知至客户端。
3.根据权利要求2所述的接口调用异常的异步重试方法,其特征在于,所述当所述重试请求满足重试条件时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口的步骤,包括:
所述重试服务器端通过第一定时器扫描所述重试请求的任务元数据的执行状态;
当所述重试请求的重试次数低于或等于所述预设重试次数,则所述重试请求满足重试条件;
所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口。
4.根据权利要求2所述的接口调用异常的异步重试方法,其特征在于,所述当所述重试请求不满足重试条件,所述重试服务器端生成失败通知,并发送所述失败通知至客户端的步骤,包括:
所述重试服务器端通过第一定时器扫描所述重试请求的任务元数据的执行状态;
当所述重试请求的重试次数超出预设重试次数,则所述重试请求不满足重试条件;
所述重试服务器端生成失败通知,并发送所述失败通知至客户端。
5.根据权利要求1所述的接口调用异常的异步重试方法,其特征在于,所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功的步骤,包括:
所述重试服务器端对所述重试请求的任务元数据进行处理;
所述重试服务器端将处理后的所述重试请求的任务发送至定时队列进行排序,并设为准备状态;
所述重试服务器端依据所述定时队列中的任务元数据和所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
6.根据权利要求5所述的接口调用异常的异步重试方法,其特征在于,所述重试服务器端对所述重试请求的任务元数据进行处理的步骤,包括:
所述重试服务器端依据所述重试请求的任务元数据,设定所述重试请求的任务执行时间。
7.根据权利要求5所述的接口调用异常的异步重试方法,其特征在于,所述重试服务器端将处理后的所述重试请求的任务发送至定时队列进行排序,并设为准备状态的步骤,包括:
所述重试服务器端将处理后的所述重试请求的任务标识存储在有序队列中;
所述重试服务器端通过第二定时器读取所述有序队列中的任务标识,并依据所述任务标识获取延迟时间大于或等于任务执行时间的当前任务元数据;
所述重试服务器端依据所述当前任务元数据,将对应的任务放入到对应的准备队列中;
所述重试服务器端设置所述准备队列中的所述当前任务数据为准备状态。
8.一种接口调用异常的重试系统,其特征在于,所述系统涉及业务端和重试服务器端,其特征在于,当所述业务端与目标终端之间的接口调用失败时,用所述业务端于发送重试请求至所述重试服务器端,其中,所述重试请求包括接口参数和重试逻辑;
包括:
接口确定模块,用于当接收到所述业务端发送的所述重试请求时,所述重试服务器端依据所述接口参数确定对应于所述目标终端的所述接口;
重试处理模块,用于所述重试服务器端依据所述重试逻辑对所述接口进行调用重试,直至在预设重试次数内重试成功。
9.一种计算机设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210105683.1A CN114443325A (zh) | 2022-01-28 | 2022-01-28 | 一种接口调用异常的异步重试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210105683.1A CN114443325A (zh) | 2022-01-28 | 2022-01-28 | 一种接口调用异常的异步重试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443325A true CN114443325A (zh) | 2022-05-06 |
Family
ID=81369058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210105683.1A Pending CN114443325A (zh) | 2022-01-28 | 2022-01-28 | 一种接口调用异常的异步重试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443325A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578575A (zh) * | 2023-07-13 | 2023-08-11 | 中国电子科技集团公司第二十八研究所 | 一种基于预设计划的数据采集方法和系统 |
-
2022
- 2022-01-28 CN CN202210105683.1A patent/CN114443325A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578575A (zh) * | 2023-07-13 | 2023-08-11 | 中国电子科技集团公司第二十八研究所 | 一种基于预设计划的数据采集方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096344B (zh) | 任务管理方法、系统、服务器集群和计算机可读介质 | |
CN109862101B (zh) | 跨平台应用启动方法、装置、计算机设备和存储介质 | |
US20030225732A1 (en) | Method and system for expansion of recurring calendar events | |
CN111338791A (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN111858007A (zh) | 一种基于消息中间件的任务调度方法方法和装置 | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
CN112817745A (zh) | 一种任务处理方法及装置 | |
CN114443325A (zh) | 一种接口调用异常的异步重试方法及系统 | |
CN107682389A (zh) | 一种执行网络请求的方法、终端及计算机可读存储介质 | |
CN110727523A (zh) | 业务请求的处理方法、处理装置及可读存储介质 | |
US8510426B2 (en) | Communication and coordination between web services in a cloud-based computing environment | |
CN113010280A (zh) | 分布式任务的处理方法、系统、装置、设备和介质 | |
CN113535371A (zh) | 一种多线程异步加载资源的方法和装置 | |
CN113391896B (zh) | 任务处理方法及装置、存储介质及电子设备 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN111147554A (zh) | 一种数据的存储方法、装置及计算机系统 | |
CN113722091A (zh) | 一种仿真任务部署方法、系统及相关装置 | |
CN111917633B (zh) | 消息发送方法、发送装置、电子设备及存储介质 | |
CN110705890A (zh) | 业务流程的驱动方法、装置、服务器和存储介质 | |
CN110727898B (zh) | Ota网站事件协助的处理方法、系统、设备和存储介质 | |
US20240202023A1 (en) | Report reexecution framework | |
CN114513547B (zh) | 模块的节点调度方法、装置、电子设备及存储介质 | |
CN114090195A (zh) | 业务处理的方法和装置 | |
US20120054767A1 (en) | Recording medium for resource management program, resource management device, and resource management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |