[发明专利]一种利用数据库锁实现定时任务原子性的方法在审
申请号: | 202111164926.0 | 申请日: | 2021-09-30 |
公开(公告)号: | CN113836161A | 公开(公告)日: | 2021-12-24 |
发明(设计)人: | 李伟伟 | 申请(专利权)人: | 紫光云技术有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F9/50;G06F9/48 |
代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 李彦彦 |
地址: | 300459 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 数据库 实现 定时 任务 原子 方法 | ||
本发明提供了一种利用数据库锁实现定时任务原子性的方法,包括如下步骤:S1、设置多组虚拟机节点,每组虚拟机节点上均部署有ntp服务器;S2、设置定时任务时间锁对应的时间规范;S3、设置时间锁主键,设置时间锁的定时任务抢占数据库行级锁;S4、根据步骤S3的时间锁返回结果,判断是否抢占到任务;S5、抢占到时间锁的定时任务进入任务执行队列,并执行此处任务,未抢占到时间锁的定时任务放弃此次执行任务;S6、任务执行完成后更新锁数据,查看任务执行结果。本发明基于定时任务特性,将定时任务时间锁集合数据库行级锁来实现定时任务的原子性,保证多副本情况下的服务定时任务唯一性,从而避免定时任务导致的脏数据问题。
技术领域
本发明属于信息技术领域,尤其是涉及一种利用数据库锁实现定时任务原子性的方法。
背景技术
随着计算机应用的发展,应用服务早已经从单体服务转到微服务架构,早期单体服务存在较多弊端,服务维护困难,微服务架构的出现解决了单体服务的弊端,但在多副本服务执行定时任务时,会存在以下问题:(1)、多副本在同一时刻执行相同的定时任务时,导致相同的任务在同一时间点执行多次,存在每个服务更新的数据不一致从而直接使业务数据不一致的问题;(2)、多副本同时分别从远端服务上拉取大量数据,并写入数据库,大量重复的数据写入数据库,增加数据库的处理压力,影响任务执行行程;因此,亟需一种利用数据库锁实现定时任务原子性的方法。
发明内容
有鉴于此,本发明旨在提出一种利用数据库锁实现定时任务原子性的方法,以解决上述问题的不足之处。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明提供了一种利用数据库锁实现定时任务原子性的方法,包括如下步骤:S1、设置多组虚拟机节点,每组虚拟机节点上均部署有ntp服务器;
S2、对步骤S1上产生的定时任务设置时间锁,并设置定时任务时间锁对应的时间规范;
S3、根据步骤S2中的时间规范,设置时间锁主键,设置有时间锁的定时任务抢占数据库行级锁;
S4、根据步骤S3中抢占的返回结果,判断是否抢占到任务;
S5、抢占到时间锁的定时任务进入任务执行队列,并执行此次任务,未抢占到时间锁的定时任务放弃此次执行任务;
S6、任务执行完成后更新锁数据,查看任务执行结果。
进一步的,步骤S2中,基于时间锁的不可逆性,设置定时任务时间锁,保证定时任务时间锁不同,防止定时锁未释放导致重复对时间锁上锁,定时任务时间锁时间规范为:
名称-时间或时间-名称形式定义时间锁,时间锁可按照定时任务最小粒度到分或者秒。
进一步的,步骤S3中,定时任务开启执行时,按照当前时间和时间锁时间规范,生成时间锁,并将设置时间锁的定时任务锁入数据库,根据时间锁主键唯一性,进行多副本服务抢占。
进一步的,步骤S4中,通过多副本情况,在定时时间点同时执行任务,抢占到数据库行级锁的任务返回结果为1,未抢占到数据行级锁的任务返回结果为0。
进一步的,步骤S6中,更新锁数据时,定期清理数据库空间占用量,防止数据过多,影响任务执行的性能。
第二方面,一种电子设备,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器执行所述指令时实现上述第一方面所述的一种利用数据库锁实现定时任务原子性的方法的步骤。
第三方面,一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行上述第一方面所述的一种利用数据库锁实现定时任务原子性的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于紫光云技术有限公司,未经紫光云技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111164926.0/2.html,转载请声明来源钻瓜专利网。