[发明专利]一种实现业务幂等的方法、装置、设备和介质在审
| 申请号: | 202110913728.3 | 申请日: | 2021-08-10 |
| 公开(公告)号: | CN113703831A | 公开(公告)日: | 2021-11-26 |
| 发明(设计)人: | 刘鹏 | 申请(专利权)人: | 青岛海尔科技有限公司;海尔智家股份有限公司 |
| 主分类号: | G06F8/73 | 分类号: | G06F8/73;G06F9/52 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张静 |
| 地址: | 266101 山东省*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 业务 方法 装置 设备 介质 | ||
1.一种实现业务幂等的方法,其特征在于,包括:
扫描业务代码,从所述业务代码中确定目标对象,所述目标对象为待进行幂等操作的对象,所述目标对象标注有注解;
为所述目标对象加锁,并执行所述目标对象;
在所述目标对象执行完后,将加在所述目标对象上的锁释放。
2.根据权利要求1所述的实现业务幂等的方法,其特征在于,所述为所述目标对象加锁,包括:
生成所述目标对象对应的切面AOP;
基于所述切面AOP为所述目标对象加锁;
所述将加在所述目标对象上的锁释放,包括:
基于所述切面AOP将加在所述目标对象上的锁释放。
3.根据权利要求1或2所述的实现业务幂等的方法,其特征在于,还包括:
若所述目标对象执行的过程中产生业务异常,则拦截所述目标对象,并将加在所述目标对象上的锁释放。
4.根据权利要求1-3任一项所述的实现业务幂等的方法,其特征在于,所述在所述目标对象执行完后,将加在所述目标对象上的锁释放,包括:
若所述目标对象执行成功,则确定所述目标对象所在线程是否处于锁定状态;
若是,则将加在所述目标对象上的锁释放。
5.根据权利要求4所述的实现业务幂等的方法,其特征在于,所述目标对象上添加的锁设置有超时时间;
所述实现业务幂等的方法,还包括:
基于所述目标对象上加的锁内部的异步定时任务定时扫描所述目标对象上加的锁;
若在所述超时时间内对所述目标对象上的锁执行释放锁操作,且释放失败,则使所述目标对象上加的锁自动释放。
6.根据权利要求5所述的实现业务幂等的方法,其特征在于,所述实现业务幂等的方法,还包括:
若在所述超时时间内未对所述目标对象上的锁执行释放锁操作,则延长所述超时时间。
7.根据权利要求1所述的实现业务幂等的方法,其特征在于,所述目标对象上加的锁为乐观锁或基于Redis的分布式锁。
8.一种实现业务幂等的装置,其特征在于,包括:代码扫描模块、加锁模块和锁释放模块;
所述代码扫描模块,用于扫描所述业务代码,从所述业务代码中确定目标对象,所述目标对象为待进行幂等操作的对象,所述目标对象标注有注解;
所述加锁模块,用于为所述目标对象加锁,并执行所述目标对象;
所述锁释放模块,用于在所述目标对象执行完后,将加在所述目标对象上的锁释放。
9.一种实现业务幂等的设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~7任一项所述的实现业务幂等的方法的各个步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~7任一项所述的实现业务幂等的方法的各个步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海尔科技有限公司;海尔智家股份有限公司,未经青岛海尔科技有限公司;海尔智家股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110913728.3/1.html,转载请声明来源钻瓜专利网。





