[发明专利]基于分布式锁的线程执行方法及装置、存储介质在审
申请号: | 202010045593.9 | 申请日: | 2020-01-16 |
公开(公告)号: | CN111259030A | 公开(公告)日: | 2020-06-09 |
发明(设计)人: | 徐亮 | 申请(专利权)人: | 平安医疗健康管理股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F9/46;G06F9/52 |
代理公司: | 北京中强智尚知识产权代理有限公司 11448 | 代理人: | 黄耀威 |
地址: | 200001 上海市黄浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 分布式 线程 执行 方法 装置 存储 介质 | ||
1.一种基于分布式锁的线程执行方法,其特征在于,包括:
缓存服务器基于来自客户端的加锁请求,向所述客户端分配所述分布式锁;
所述客户端接收到所述分布式锁后,基于所述加锁请求建立任务线程以及监视线程;
利用所述任务线程执行与所述加锁请求对应的待执行任务,以及通过所述监视线程对执行超时的所述任务线程作出中断标记;
基于所述中断标记中断所述任务线程,并回滚所述任务线程对应的数据库资源。
2.根据权利要求1所述的方法,其特征在于,所述向所述客户端分配所述分布式锁,具体包括:
为与所述加锁请求匹配的分布式锁设定过期时间后,向所述客户端分配所述分布式锁;
所述客户端接收到所述分布式锁后,基于所述加锁请求建立任务线程以及监视线程,具体包括:
所述客户端接收到所述分布式锁后,将所述加锁请求对应的代理对象放入预先建立的线程池中,其中,所述代理对象包括所述任务线程以及待执行任务;
在所述线程池中为所述任务线程分配对应的所述监视线程,其中,所述监视线程在系统时间超过所述过期时间时判定所述任务线程执行超时。
3.根据权利要求2所述的方法,其特征在于,所述利用所述任务线程执行与所述加锁请求对应的待执行任务,具体包括:
判断所述待执行任务是否已被写入事务中;
若未写入事务中,则建立包含所述待执行任务的事务后,利用所述任务线程执行所述事务;
若已写入事务中,则利用所述任务线程执行所述事务。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述任务线程执行结束并且不包含所述中断标记,则提交所述任务线程对应的所述事务。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述所述客户端接收到所述分布式锁后之后,所述方法还包括:
记录接收到所述分布式锁时的时间戳信息;
所述基于所述中断标记中断所述任务线程,并回滚所述任务线程对应的数据库资源,具体包括:
若所述待执行任务为I/O密集型任务,则在所述监视线程对所述任务线程作出所述中断标记时,立即中断所述任务线程并将所述数据库资源回滚至与所述时间戳信息相应的时间节点。
6.根据权利要求5所述的方法,其特征在于,所述加锁请求包括分布式锁标识信息,所述缓存服务器基于来自客户端的加锁请求,为与所述加锁请求匹配的分布式锁设定过期时间后,向所述客户端分配所述分布式锁,具体包括:
缓存服务器基于所述加锁请求中的所述分布式锁标识信息,检查相应的所述分布式锁是否正在被占用;
若所述分布式锁未被占用,则获取所述分布式锁的加锁时间,并基于所述加锁时间为所述分布式锁设定所述过期时间后将其分配至所述客户端中,其中,所述过期时间为当前时间与所述加锁时间之和;
若所述分布式锁已被占用,则向所述客户端返回加锁失败信息。
7.根据权利要求6所述的方法,其特征在于,所述分布式锁的加锁时间基于所述加锁请求获取和/或基于所述分布式锁对应的预设加锁时间映射表获取。
8.一种基于分布式锁的线程执行装置,其特征在于,包括:
分布式锁分配模块,用于缓存服务器基于来自客户端的加锁请求,向所述客户端分配所述分布式锁;
线程建立模块,用于所述客户端接收到所述分布式锁后,基于所述加锁请求建立任务线程以及监视线程;
线程执行模块,用于利用所述任务线程执行与所述加锁请求对应的待执行任务,以及通过所述监视线程对执行超时的所述任务线程作出中断标记;
资源回滚模块,用于基于所述中断标记中断所述任务线程,并回滚所述任务线程对应的数据库资源。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7中任一项所述的基于分布式锁的线程执行方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的基于分布式锁的线程执行方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安医疗健康管理股份有限公司,未经平安医疗健康管理股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010045593.9/1.html,转载请声明来源钻瓜专利网。