幂等实现方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:38986369 阅读:7 留言:0更新日期:2023-10-07 10:17
本申请涉及金融科技,具体公开了一种幂等实现方法、装置、设备及存储介质。其中方法包括:获取入参参数;基于预设加密算法,对所述入参参数进行数据变换计算,获得参数特征码;基于所述参数特征码,获取并发锁;在获取所述并发锁成功时,查询数据库中是否存在所述参数特征码对应的目标运行结果;在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果。该方法通过数据变换计算获得入参参数的参数特征码,保证了入参参数的唯一性,可以避免对入参参数进行幂等参数或者标识的增加操作,降低了幂等计算参数的数据量,简化了幂等计算的参数处理流程,提高了幂等处理流程的便捷性。流程的便捷性。流程的便捷性。

【技术实现步骤摘要】
幂等实现方法、装置、计算机设备及存储介质


[0001]本申请涉及金融科技
,尤其涉及一种幂等实现方法、装置、计算机设备及存储介质。

技术介绍

[0002]幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。也即对于多次发出的同一个请求,必须保证操作执行一次。比如,在金融领域,因网络延迟、中断等问题导致重复支付或者重复下单等。而重复支付会导致多次扣钱,同一个订单多次创建会导致购买的商品过剩、支付金额超预算等问题。此时,采用幂等函数,可以保证重复支付的操作只执行一次,即仅支付一次;同一订单的创建操作也只执行一次,即仅创建一个订单。由此,可以避免误操作造成的经济损失。
[0003]目前,幂等函数在金融领域的应用是在参数中增加幂等参数或者标识,然后根据幂等参数或者标识进行幂等计算,实现幂等。但是,增加幂等参数或者标识会导致交互流程复杂度增加,需要先获取幂等标识再请求,且会增加传输数据量,使得幂等处理流程不够便捷。因此,如何解决目前幂等处理流程便捷性差成为了亟待解决的技术问题。

技术实现思路

[0004]本申请提供了一种幂等实现方法、装置、计算机设备及存储介质,以提高幂等处理流程的便捷性。
[0005]第一方面,本申请提供了一种幂等实现方法,所述方法包括:
[0006]获取入参参数;
[0007]基于预设加密算法,对所述入参参数进行数据变换计算,获得参数特征码;
[0008]基于所述参数特征码,获取并发锁;
[0009]在获取所述并发锁成功时,查询数据库中是否存在所述参数特征码对应的目标运行结果;
[0010]在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果。
[0011]第二方面,本申请还提供了一种幂等实现装置,所述装置包括:
[0012]参数获取模块,用于获取入参参数;
[0013]参数特征码获得模块,用于基于预设加密算法,对所述入参参数进行数据变换计算,获得参数特征码;
[0014]并发锁获取模块,用于基于所述参数特征码,获取并发锁;
[0015]运行结果查询模块,用于在获取所述并发锁成功时,查询数据库中是否存在所述参数特征码对应的目标运行结果;
[0016]运行结果输出模块,用于在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果。
[0017]第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的幂等实现方法。
[0018]第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的幂等实现方法。
[0019]本申请公开了一种幂等实现方法、装置、计算机设备及存储介质,该方法包括:获取入参参数;基于预设加密算法,对所述入参参数进行数据变换计算,获得参数特征码;基于所述参数特征码,获取并发锁;在获取所述并发锁成功时,查询数据库中是否存在所述参数特征码对应的目标运行结果;在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果。通过上述方式,在获取入参参数之后,通过预设加密算法,对入参参数进行数据变换计算,获得入参参数对应的参数特征码,参数特征码可以保证入参参数的唯一性,便于对相同操作请求的识别,比如同一支付订单。根据参数特征码,获取并发锁,并且在获取并发锁成功后,查询数据库中是否存在参数特征码对应的目标运行结果,也即是否已经完成该操作请求的操作执行。并发锁可以避免多个请求并发执行,保证幂等计算请求的有序性。在数据库中存在该参数特征码对应的目标运行结果时,则表示该参数特征码对应的操作请求已经执行,输出相同的目标运行结果,而不需要进行重复执行。通过数据变换计算获得入参参数的参数特征码,保证了入参参数的唯一性,可以避免对入参参数进行幂等参数或者标识的增加操作,降低了幂等计算参数的数据量,简化了幂等计算的参数处理流程,提高了幂等处理流程的便捷性。
附图说明
[0020]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是本申请的实施例提供的一种幂等实现方法第一实施方式的示意流程图;
[0022]图2是本申请的实施例提供的排它锁实施方式的流程示意图;
[0023]图3是本申请的实施例提供的自旋锁实施方式的流程示意图;
[0024]图4是本申请的实施例提供的一种幂等实现方法另一实施方式的示意流程图;
[0025]图5是本申请的实施例提供的一种幂等实现方法第二实施方式的示意流程图;
[0026]图6是本申请的实施例提供的一种幂等实现方法第三实施方式的示意流程图;
[0027]图7是本申请的实施例提供一种幂等实现装置的示意性框图;
[0028]图8是本申请的实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
[0029]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申
请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0030]附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0031]应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0032]还应当进理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0033]本申请的实施例提供了一种幂等实现方法、装置、计算机设备及存储介质。其中,该幂等实现方法可以应用于服务器中,通过数据变换计算获得入参参数的参数特征码,保证了入参参数的唯一性,可以避免对入参参数进行幂等参数或者标识的增加操作,降低了幂等计算参数的数据量,简化了幂等计算的参数处理流程,提高了幂等处理流程的便捷性。其中,该服务器可以为独立的服务器,也可以为服务器集群。
[0034]下面结合附图,对本申请的一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种幂等实现方法,其特征在于,包括:获取入参参数;基于预设加密算法,对所述入参参数进行数据变换计算,获得参数特征码;基于所述参数特征码,获取并发锁;在获取所述并发锁成功时,查询数据库中是否存在所述参数特征码对应的目标运行结果;在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果。2.根据权利要求1所述的幂等实现方法,其特征在于,所述在获取所述并发锁成功时,查询数据库中是否存在所述参数特征码对应的目标运行结果之后,还包括:在所述数据库中不存在所述参数特征码对应的目标运行结果时,基于幂等函数和所述入参参数,执行幂等计算,保存并输出幂等计算结果,获得所述目标运行结果。3.根据权利要求1所述的幂等实现方法,其特征在于,所述基于所述参数特征码,获取并发锁之后,还包括:在获取所述并发锁失败时,查询所述数据库中是否存在所述参数特征码对应的目标运行结果;在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果。4.根据权利要求3所述的幂等实现方法,其特征在于,所述在获取所述并发锁失败时,查询所述数据库中是否存在所述参数特征码对应的目标运行结果之后,还包括:在所述数据库中不存在所述参数特征码对应的目标运行结果时,在第一预设时长后,重新查询所述数据库中是否存在所述参数特征码对应的目标运行结果;在所述数据库中不存在所述参数特征码对应的目标运行结果时,生成并发异常信息,以提醒用户当前入参参数的幂等计算执行失败。5.根据权利要求1所述的幂等实现方法,其特征在于,所述在所述数据库中存在所述参数特征码对应的目标运行结果时,输出所述目标运行结果之后,还包括:获取所述目标运行结果的当前输出时间信息以及所述目标运行结果上...

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

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

1