幂等的实现方法、装置、设备及介质制造方法及图纸

技术编号:29132398 阅读:28 留言:0更新日期:2021-07-02 22:27
本申请涉及人工智能技术领域,揭示了一种幂等的实现方法、装置、设备及介质,其中方法包括:基于SPEL表达式对目标软件基于幂等注解发送的幂等调用请求携带的请求注解参数得到待处理的幂等标识;对待处理的幂等标识得到分布式锁添加结果;当分布式锁添加结果为失败时确定目标幂等计算结果的执行状态为正在处理中,否则根据待处理的幂等标识、缓存和数据库确定幂等标识查找结果;当幂等标识查找结果为失败时根据待处理的幂等标识确定目标幂等计算结果,根据目标幂等计算结果更新缓存和数据库,否则,根据待处理的幂等标识对应的执行状态确定目标幂等计算结果。不需要程序员在目标软件中自行编写代码实现幂等,有利于目标软件的后期维护。

【技术实现步骤摘要】
幂等的实现方法、装置、设备及介质
本申请涉及到人工智能
,特别是涉及到一种幂等的实现方法、装置、设备及介质。
技术介绍
幂等的特点是在输入参数相同的情况下多次调用时所产生的影响均与一次执行调用时所产生的影响相同,以用于避免输入参数相同多次提交被多次执行的情况。随着技术的发展,幂等得到广泛的应用,比如,订单支付等都要求相同的输入参数执行多次得到的结果和执行一次得到的结果一致,以避免重复支付导致多付款。现有技术通过程序员在需要采用幂等的程序文件中自行编写代码实现幂等,首先根据业务数据的状态、进度来判断请求是否已经执行过了,然后再做出相应的处理。因开发人员代码水平、业务理解、实现方式、风格的不一致,从而不利于软件的后期维护,重复开发增加了开发成本。
技术实现思路
本申请的主要目的为提供一种幂等的实现方法、装置、设备及介质,旨在解决现有技术程序员在需要采用幂等的程序文件中自行编写代码实现幂等,因开发人员代码水平、业务理解、实现方式、风格的不一致,不利于软件的后期维护,重复开发增加了开发成本的技术问题。>为了实现上述专利技本文档来自技高网...

【技术保护点】
1.一种幂等的实现方法,其特征在于,所述方法包括:/n获取目标软件基于幂等注解发送的幂等调用请求,所述幂等调用请求携带有请求注解参数;/n基于SPEL表达式,对所述请求注解参数进行解析和幂等标识生成处理,得到待处理的幂等标识;/n对所述待处理的幂等标识进行添加分布式锁处理,得到分布式锁添加结果;/n当所述分布式锁添加结果为失败时,确定所述待处理的幂等标识对应的目标幂等计算结果中的执行状态为正在处理中;/n当所述分布式锁添加结果为成功时,根据所述待处理的幂等标识、缓存和数据库,确定幂等标识查找结果;/n当所述幂等标识查找结果为失败时,根据所述待处理的幂等标识进行幂等计算,确定所述目标幂等计算结果...

【技术特征摘要】
1.一种幂等的实现方法,其特征在于,所述方法包括:
获取目标软件基于幂等注解发送的幂等调用请求,所述幂等调用请求携带有请求注解参数;
基于SPEL表达式,对所述请求注解参数进行解析和幂等标识生成处理,得到待处理的幂等标识;
对所述待处理的幂等标识进行添加分布式锁处理,得到分布式锁添加结果;
当所述分布式锁添加结果为失败时,确定所述待处理的幂等标识对应的目标幂等计算结果中的执行状态为正在处理中;
当所述分布式锁添加结果为成功时,根据所述待处理的幂等标识、缓存和数据库,确定幂等标识查找结果;
当所述幂等标识查找结果为失败时,根据所述待处理的幂等标识进行幂等计算,确定所述目标幂等计算结果,根据所述目标幂等计算结果更新所述缓存和所述数据库;
当所述幂等标识查找结果为成功时,获取所述待处理的幂等标识的执行状态,根据所述待处理的幂等标识对应的所述执行状态,确定所述目标幂等计算结果。


2.根据权利要求1所述的幂等的实现方法,其特征在于,所述基于SPEL表达式,对所述请求注解参数进行解析和幂等标识生成处理,得到待处理的幂等标识的步骤,包括:
基于所述SPEL表达式,对所述请求注解参数进行解析,得到参数解析结果;
获取预设幂等标识生成规则,采用所述预设幂等标识生成规则,根据所述参数解析结果进行幂等标识生成处理,得到所述待处理的幂等标识。


3.根据权利要求1所述的幂等的实现方法,其特征在于,所述对所述待处理的幂等标识进行添加分布式锁处理,得到分布式锁添加结果的步骤,包括:
将所述待处理的幂等标识在zookeeper中进行分布式锁注册,当注册成功时确定所述分布式锁添加结果为成功,以及根据所述待处理的幂等标识确定分布式锁标识,当注册失败时确定所述分布式锁添加结果为失败。


4.根据权利要求1所述的幂等的实现方法,其特征在于,所述当所述分布式锁添加结果为成功时,根据所述待处理的幂等标识、缓存和数据库,确定幂等标识查找结果的步骤,包括:
当所述分布式锁添加结果为成功时,将所述待处理的幂等标识在所述缓存中进行查找,得到缓存查找结果;
当所述缓存查找结果为成功时,确定所述幂等标识查找结果为成功,否则,将所述待处理的幂等标识在所述数据库中进行查找,得到数据库查找结果;
当所述数据库查找结果为成功时,确定所述幂等标识查找结果为成功,将所述待处理的幂等标识在数据库中查找,得到待补充更新的幂等标识数据,将所述待补充更新的幂等标识数据存储到所述缓存中,否则,确定所述幂等标识查找结果为失败。


5.根据权利要求1所述的幂等的实现方法,其特征在于,所述当所述幂等标识查找结果为失败时,根据所述待处理的幂等标识进行幂等计算,确定所述目标幂等计算结果,根据所述目标幂等计算结果更新所述缓存和所述数据库的步骤,包括:
当所述幂等标识查找结果为失败时,根据所述待处理的幂等标识进行幂等计算,将幂等计算得到的执行状态、结果类型和返回信息作为所述目标幂等计算结果;
将所述目标幂等计算结果存储到所述数据库中,将所述目标幂等计算结果存储到所述缓存中;
将所述目标幂等计算结果发送给所述目标软件。

【专利技术属性】
技术研发人员:周剑
申请(专利权)人:中国平安财产保险股份有限公司
类型:发明
国别省市:广东;44

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

1