一种实现接口消息幂等的方法、系统、装置及存储介质制造方法及图纸

技术编号:36537607 阅读:13 留言:0更新日期:2023-02-01 16:26
本发明专利技术公开了一种实现接口消息幂等的方法、系统、装置及存储介质,方法包括:获取服务请求,基于服务请求,在第一预设期限内进行请求去重处理;根据服务请求,执行目标处理,得到处理状态;当执行状态为已存在状态,在第二预设期限后,根据服务请求进行处理校验,得到处理结果;当处理结果为失败,返回根据服务请求,执行目标处理,得到处理状态这一步骤,直至得到处理状态为成功状态或失败状态,或,得到处理结果为成功。本发明专利技术通过对服务请求的请求去重处理,保证了请求幂等性,并且通过处理状态和处理结果的二次校验,防止了请求丢失,当处理结果失败时,重新响应服务请求,能够保证服务请求处理的成功率,可广泛应用于计算机技术领域。领域。领域。

【技术实现步骤摘要】
一种实现接口消息幂等的方法、系统、装置及存储介质


[0001]本专利技术涉及计算机
,尤其是实现接口消息幂等的方法、系统、装置及存储介质。

技术介绍

[0002]请求幂等是指对于同一个请求,请求一次或多次,对服务端数据的影响都是一样的。目前的主流请求幂等方案都是服务端通过redis、zookeeper或者数据库的原子性保证相同请求能被过滤掉,从而保证请求幂等性。存在对于请求多发或者少发地取舍。
[0003]虽然现有技术能够过滤相同请求,但是存在如下问题:服务端将消息放到幂等表或者缓存后,服务端出现异常,请求则会被认为是失败的;这时触发请求重试,由于消息已经存入幂等表或者缓存,会触发服务端幂等过滤,最终会造成请求丢失。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种检测精度高,部署成本低的,一种实现接口消息幂等的方法、系统、装置及存储介质。
[0005]一方面,本专利技术实施例提供了一种实现接口消息幂等的方法,包括:
[0006]获取服务请求,基于所述服务请求,在第一预设期限内进行请求去重处理;
[0007]根据所述服务请求,执行目标处理,得到处理状态;
[0008]其中,所述处理状态包括成功状态、失败状态和已存在状态;
[0009]当所述执行状态为已存在状态,在第二预设期限后,根据所述服务请求进行处理校验,得到处理结果;
[0010]其中,所述第二预设期限大于所述第一预设期限;
[0011]当所述处理结果为失败,返回根据所述服务请求,执行目标处理,得到处理状态这一步骤,直至得到处理状态为成功状态或失败状态,或,得到处理结果为成功。
[0012]可选地,还包括:
[0013]通过幂等表或缓存保存所述服务请求。
[0014]可选地,所述基于所述服务请求,在第一预设期限内进行请求去重处理,包括:
[0015]基于客户端的所述服务请求,通过服务端的预设组件,过滤在第一预设期限内重复获取到的所述服务请求;
[0016]其中,所述预设组件包括数据库和redis。
[0017]可选地,所述根据所述服务请求,执行目标处理,得到处理状态这一步骤后,还包括:
[0018]当所述处理状态为成功状态,或第一预设期限后,删除所述幂等表或所述缓存中的所述服务请求。
[0019]可选地,所述失败状态包括第一失败状态,所述方法还包括:
[0020]当所述失败状态为第一失败状态,删除所述幂等表或所述缓存中的所述服务请
求。
[0021]可选地,所述失败状态包括第二失败状态,所述方法还包括:
[0022]当所述失败状态为第二失败状态,通过客户端基于所述服务请求进行请求重试处理;
[0023]根据所述请求重试处理,执行所述目标处理,直至达到预设重试次数、得到成功状态的处理状态或已存在状态的处理状态。
[0024]可选地,所述当所述执行状态为已存在状态,在第二预设期限后,根据所述服务请求进行处理校验,得到处理结果,包括:
[0025]当所述执行状态为已存在状态,通过客户端保存所述服务请求;
[0026]在第二预设期限后,通过客户端的所述服务请求校验服务端的所述目标处理是否处理成功,得到处理结果。
[0027]第二方面,本专利技术实施例提供了一种实现接口消息幂等的系统,包括:
[0028]第一模块,用于获取服务请求,基于所述服务请求,在第一预设期限内进行请求去重处理;
[0029]第二模块,用于根据所述服务请求,执行目标处理,得到处理状态;其中,所述处理状态包括成功状态、失败状态和已存在状态;
[0030]第三模块,用于当所述执行状态为已存在状态,在第二预设期限后,根据所述服务请求进行处理校验,得到处理结果;其中,所述第二预设期限大于所述第一预设期限;
[0031]第四模块,用于当所述处理结果为失败,返回根据所述服务请求,执行目标处理,得到处理状态这一步骤,直至得到处理状态为成功状态或失败状态,或,得到处理结果为成功。
[0032]另一方面,本专利技术实施例提供了一种实现接口消息幂等的装置,包括处理器以及存储器;
[0033]所述存储器用于存储程序;
[0034]所述处理器执行所述程序实现如前面所述的方法。
[0035]另一方面,本专利技术实施例提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
[0036]本专利技术实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
[0037]本专利技术的实施例首先获取服务请求,基于所述服务请求,在第一预设期限内进行请求去重处理;根据所述服务请求,执行目标处理,得到处理状态;其中,所述处理状态包括成功状态、失败状态和已存在状态;当所述执行状态为已存在状态,在第二预设期限后,根据所述服务请求进行处理校验,得到处理结果;其中,所述第二预设期限大于所述第一预设期限;当所述处理结果为失败,返回根据所述服务请求,执行目标处理,得到处理状态这一步骤,直至得到处理状态为成功状态或失败状态,或,得到处理结果为成功。本专利技术通过对服务请求的请求去重处理,保证了请求幂等性,并且通过处理状态和处理结果的二次校验,防止了请求丢失,并且基于二次校验,当服务请求对应的目标处理的处理结果失败时,重新
响应服务请求执行目标处理,能够保证服务请求处理的成功率。
附图说明
[0038]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本专利技术实施例提供的实现接口消息幂等的方法的整体步骤流程示意图;
[0040]图2为本专利技术实施例提供的实现接口消息幂等的方法的实施流程示意图;
[0041]图3为本专利技术实施例提供的返回失败状态后的重试流程示意图;
[0042]图4为本专利技术实施例提供的实现接口消息幂等的系统的示意图;
[0043]图5为本专利技术实施例提供的实现接口消息幂等的装置的示意图。
具体实施方式
[0044]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0045]针对现有技术存在的问题,一方面,本专利技术提供了一种实现接口消息幂等的方法,如图1所示,方法包括以下步骤:
[0046]S100、获取服务请求,基于服务请求,在第一预设期限内进行请求去重处理;...

【技术保护点】

【技术特征摘要】
1.一种实现接口消息幂等的方法,其特征在于,包括:获取服务请求,基于所述服务请求,在第一预设期限内进行请求去重处理;根据所述服务请求,执行目标处理,得到处理状态;其中,所述处理状态包括成功状态、失败状态和已存在状态;当所述执行状态为已存在状态,在第二预设期限后,根据所述服务请求进行处理校验,得到处理结果;其中,所述第二预设期限大于所述第一预设期限;当所述处理结果为失败,返回根据所述服务请求,执行目标处理,得到处理状态这一步骤,直至得到处理状态为成功状态或失败状态,或,得到处理结果为成功。2.根据权利要求1所述的一种实现接口消息幂等的方法,其特征在于,还包括:通过幂等表或缓存保存所述服务请求。3.根据权利要求1所述的一种实现接口消息幂等的方法,其特征在于,所述基于所述服务请求,在第一预设期限内进行请求去重处理,包括:基于客户端的所述服务请求,通过服务端的预设组件,过滤在第一预设期限内重复获取到的所述服务请求;其中,所述预设组件包括数据库和redis。4.根据权利要求2所述的一种实现接口消息幂等的方法,其特征在于,还包括:当所述处理状态为成功状态,或第一预设期限后,删除所述幂等表或所述缓存中的所述服务请求。5.根据权利要求2所述的一种实现接口消息幂等的方法,其特征在于,所述失败状态包括第一失败状态,所述方法还包括:当所述失败状态为第一失败状态,删除所述幂等表或所述缓存中的所述服务请求。6.根据权利要求1所述的一种实现接口消息幂等的方法,其特征在于,所述失败状态包括第二失败状态,所述方法还包括:当所述失败状态为第二...

【专利技术属性】
技术研发人员:黄卓杰朱渊黄微
申请(专利权)人:广州市玄武无线科技股份有限公司
类型:发明
国别省市:

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

1