[发明专利]程序处理方法、装置、电子设备及存储介质在审
申请号: | 201911122650.2 | 申请日: | 2019-11-15 |
公开(公告)号: | CN111026465A | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 吴洪滔 | 申请(专利权)人: | 北京三快在线科技有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 任亚娟 |
地址: | 100083 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 处理 方法 装置 电子设备 存储 介质 | ||
本公开的实施例提供了一种程序处理方法、装置、电子设备及存储介质。所述方法包括:根据待运行程序中预先添加的注解,获取所述待运行程序中需要进行幂等操作的目标子程序;生成所述目标子程序在进行幂等操作时使用的参数对应的加锁请求;将所述加锁请求发送至服务器;在接收到所述服务器返回的加锁成功的结果之后,根据所述参数对所述目标子程序执行幂等操作。本公开的实施例能够避免写操作并发引起的请求重复提交,通常需要进行幂等校验,保证资源的唯一性,进而,可以减少资产损失,提高了用户的体验。
技术领域
本公开的实施例涉及通信技术领域,尤其涉及一种程序处理方法、装置、电子设备及存储介质。
背景技术
幂等(Idempotence)是一个数学与计算机学概念,常见于抽象代数中,某一元运算为幂等的时,其作用在任一元素两次后会和其作用一次的结果相同。
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成多次改变。
而在调用幂等操作的接口时,可能存在调用接口异常存在重复尝试的情况,则势必造成系统所无法承受的损失,例如,一个订单创建接口,第一次调用超时了,然后调用方重试了一次,在订单创建时,需要去扣减库存,这时接口发生了超时,调用方重试了一次,当这笔订单开始支付,在支付请求发出之后,在服务端发生了费用扣减的操作,接口响应超时了,调用方重试了一次,一个订单状态更新接口,调用方连续发送了两个消息,一个是已创建消息,一个是已付款消息。但是在先接收到已付款消息,然后又接收到了已创建消息,在支付完成订单之后,需要发送一条短信,当一台机器接收到短信发送的消息之后,处理较慢。消息中间件又把消息投递给另外一台机器处理,因此,可能会造成资产损失,导致用户体验极差。
发明内容
本公开的实施例提供一种程序处理方法、装置、电子设备及存储介质,用以减少资产损失,提高用户体验。
根据本公开的实施例的第一方面,提供了一种程序处理方法,包括:
根据待运行程序中预先添加的注解,获取所述待运行程序中需要进行幂等操作的目标子程序;
生成所述目标子程序在进行幂等操作时使用的参数对应的加锁请求;
将所述加锁请求发送至服务器;
在接收到所述服务器返回的加锁成功的结果之后,根据所述参数对所述目标子程序执行幂等操作。
可选地,在所述根据待运行程序中预先添加的注解,获取所述待运行程序中需要进行幂等操作的目标子程序之前,还包括:
获取所述待运行程序中需要进行幂等操作的至少一个子程序;所述目标子程序为所述至少一个子程序中的一个子程序;
调用预先设置的注解包对所述至少一个子程序添加注解,以标示所述至少一个子程序在进行幂等操作时所使用的参数。
可选地,所述根据待运行程序中预先添加的注解,获取所述待运行程序中需要进行幂等操作的目标子程序,包括:
在所述待运行程序的运行过程中,获取被注解处理器拦截的所述至少一个子程序中的一个子程序,将被拦截的一个子程序作为所述目标子程序。
可选地,所述注解中包含有指定加锁方式,所述生成所述目标子程序在进行幂等操作时使用的参数对应的加锁请求,包括:
根据所述注解处理器对所述目标子程序的注解的解析结果,获取所述目标子程序在进行幂等操作时所使用的参数和所述指定加锁方式;
根据所述参数和所述指定加锁方式,生成所述加锁请求。
可选地,所述将所述加锁请求发送至服务器,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911122650.2/2.html,转载请声明来源钻瓜专利网。