(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 20221090859 9.3
(22)申请日 2022.07.29
(71)申请人 天翼云科技有限公司
地址 100007 北京市东城区青龙胡同甲1
号、 3号2幢2层20 5-32室
(72)发明人 洪水能 邓志强 邓龙亮 浣浩
(74)专利代理 机构 北京三聚阳光知识产权代理
有限公司 1 1250
专利代理师 熊飞雪
(51)Int.Cl.
G06F 9/46(2006.01)
G06F 9/50(2006.01)
G06F 16/23(2019.01)
(54)发明名称
一种分布式锁管理方法、 装置、 电子设备及
存储介质
(57)摘要
本申请提供一种分布式锁管理方法、 装置、
电子设备及存储介质, 该方法包括: 在当前设备
的任一线程准备请求访问共享资源时, 开启获取
锁数据库事务, 判断该线程是否拥有分布式锁对
象; 若有, 根据该分布式锁对象的属性信息, 判断
该分布式锁对象是否失效; 若失效, 清空线程关
于分布式锁对象的局部变量, 在数据库的锁表中
删除该分布式锁对象对应的记录; 为线程新建新
的分布式锁对象, 提交获取锁数据库事务。 通过
在设备线程准备请求访问共享资源时, 判断分布
式锁对象是否失效, 在失效的情况下删除相应的
记录, 并为其创建新的分布式锁对象, 以避免线
程在请求访问共享资源时因分布式锁失效而无
法正常进 入共享资源访问队列。
权利要求书2页 说明书11页 附图3页
CN 115454581 A
2022.12.09
CN 115454581 A
1.一种分布式锁管理方法, 其特 征在于, 包括:
在当前设备的任一线程准备请求访 问共享资源时, 开启获取锁数据库事务, 判断该线
程是否拥有分布式锁对象;
若有, 则根据该分布式锁对象的属性信息, 判断该分布式锁对象是否失效;
若失效, 则清空所述线程关于所述分布式锁对象的局部变量, 并在数据库的锁表中删
除该分布式锁对象对应的记录;
为所述线程新建新的分布式锁对象, 提交所述获取锁数据库事务, 以使所述线程基于
新的分布式锁对象请求访问所述共享资源。
2.根据权利要求1所述的方法, 其特征在于, 所述分布式锁对象的属性信 息至少包括创
建时间和有效时长, 所述根据该分布式锁对象的属性信息, 判断该分布式锁对象是否失效,
包括:
根据所述分布式锁对象的创建时间和当前系统时间, 确定所述分布式锁对象的存在时
长;
当所述分布式锁对象的存在时长超出 所述有效时长时, 确定所述分布式锁对象失效。
3.根据权利要求1所述的方法, 其特 征在于, 还 包括:
若该分布式锁对象未失效, 再次为所述线程获取分布式锁对象, 提交所述获取锁数据
库事务, 以使所述线程累计获取同一个分布式锁对 象, 增加所述线程的分布式锁对 象持有
量。
4.根据权利要求1所述的方法, 其特征在于, 所述为所述线程新建新的分布式锁对象,
包括:
获取所述当前设备的分布式锁创建参数;
根据所述分布式锁创建参数, 向所述数据库的锁 表中添加对应的记录;
向所述线程的局部变量写入所述 新的分布式锁对象。
5.根据权利要求4所述的方法, 其特征在于, 在向所述线程的局部变量写入所述新的分
布式锁对象之前, 所述方法还 包括:
判断所述数据库是否报出分布式锁唯一约束异常;
若是, 则根据所述 新的分布式锁对象的锁标识, 在所述锁 表中发起锁查询;
若查询结果 为空, 则根据所述线程的业 务接口参数, 判断是否进入阻塞状态;
若是, 则进入阻塞状态, 使所述线程休眠特定时长, 并返回到所述获取所述当前设备的
分布式锁构建参数的步骤。
6.根据权利要求5所述的方法, 其特 征在于, 还 包括:
若所述查询结果不为空, 则根据所述查询结果, 判断所述查询结果对应的分布式锁对
象是否失效;
若是, 则在数据库的锁 表中删除该分布式锁对象对应的记录 。
7.根据权利要求3所述的方法, 其特 征在于, 还 包括:
在所述线程基于分布式锁对象完成对所述共享资源的访问后, 开启释放锁数据库事
务;
判断所述线程当前拥有的分布式锁对象是否经 过累计获取;
若是, 则对所述线程对分布式锁对象持有量进行递减;权 利 要 求 书 1/2 页
2
CN 115454581 A
2当所述线程递减后的分布式锁持有量等于0时, 释放所述线程的分布式锁对象, 并删除
所述分布式锁对象在所述锁 表中的记录, 提交所述释放锁数据库事务。
8.一种分布式锁管理装置, 其特 征在于, 包括:
第一判断模块, 用于在当前设备的任一线程准备请求访 问共享资源时, 开启获取锁数
据库事务, 判断该线程是否拥有分布式锁对象;
第二判断模块, 用于若有, 则根据该分布式锁对象的属性信 息, 判断该分布式锁对象是
否失效;
数据处理模块, 用于若失效, 则清 空所述线程关于所述分布式锁对象的局部变量, 并在
数据库的锁 表中删除该分布式锁对象对应的记录;
管理模块, 用于为所述线程新建新的分布式锁对象, 提交所述获取锁数据库事务, 以使
所述线程基于新的分布式锁对象请求访问所述共享资源。
9.一种电子设备, 其特 征在于, 包括: 至少一个处 理器和存 储器;
所述存储器存储计算机执 行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令, 使得所述至少一个处理
器执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质中存储有计算机
执行指令, 当处 理器执行所述计算机执 行指令时, 实现如权利要求1至7任一项所述的方法。权 利 要 求 书 2/2 页
3
CN 115454581 A
3
专利 一种分布式锁管理方法、装置、电子设备及存储介质
安全报告 >
其他 >
文档预览
中文文档
17 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:38:16上传分享