[发明专利]一种利用数据库锁实现定时任务原子性的方法在审
申请号: | 202111164926.0 | 申请日: | 2021-09-30 |
公开(公告)号: | CN113836161A | 公开(公告)日: | 2021-12-24 |
发明(设计)人: | 李伟伟 | 申请(专利权)人: | 紫光云技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F9/50;G06F9/48 |
代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 李彦彦 |
地址: | 300459 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 数据库 实现 定时 任务 原子 方法 | ||
1.一种利用数据库锁实现定时任务原子性的方法,其特征在于,包括如下步骤:S1、设置多组虚拟机节点,每组虚拟机节点上均部署有ntp服务器;
S2、对定时任务设置时间锁,并设置定时任务时间锁对应的时间规范;
S3、根据步骤S2中的时间规范,设置时间锁主键,设置有时间锁的定时任务抢占数据库行级锁;
S4、根据步骤S3中抢占的返回结果,判断是否抢占到任务;
S5、抢占到时间锁的定时任务进入任务执行队列,并执行此次任务,未抢占到时间锁的定时任务放弃此次执行任务;
S6、任务执行完成后更新锁数据,查看任务执行结果。
2.根据权利要求1所述的一种利用数据库锁实现定时任务原子性的方法,其特征在于:步骤S2中,基于时间锁的不可逆性,设置定时任务时间锁,保证定时任务时间锁不同,防止定时锁未释放导致重复对时间锁上锁,定时任务时间锁时间规范为:
名称-时间或时间-名称形式定义时间锁,时间锁可按照定时任务最小粒度到分或者秒。
3.根据权利要求2所述的一种利用数据库锁实现定时任务原子性的方法,其特征在于:步骤S3中,定时任务开启执行时,按照当前时间和时间锁时间规范,生成时间锁,并将设置时间锁的定时任务锁入数据库,根据时间锁主键唯一性,进行多副本服务抢占。
4.根据权利要求3所述的一种利用数据库锁实现定时任务原子性的方法,其特征在于:步骤S4中,通过多副本情况,在定时时间点同时执行任务,抢占到数据库行级锁的任务返回结果为1,未抢占到数据行级锁的任务返回结果为0。
5.根据权利要求1所述的一种利用数据库锁实现定时任务原子性的方法,其特征在于:步骤S6中,更新锁数据时,定期清理数据库空间占用量,防止数据过多,影响任务执行的性能。
6.一种电子设备,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于:所述处理器执行所述指令时实现权利要求1-7任一项所述的一种利用数据库锁实现定时任务原子性的方法的步骤。
7.一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,其特征在于:所述指令被所述处理器执行,以使所述至少一个处理器执行如权利要求1-7任一所述的一种利用数据库锁实现定时任务原子性的方法的步骤。
8.一种计算机可读取存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述的一种利用数据库锁实现定时任务原子性的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于紫光云技术有限公司,未经紫光云技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111164926.0/1.html,转载请声明来源钻瓜专利网。