本发明涉及计算机,尤其涉及一种定时任务调度方法、装置、设备及存储介质。
背景技术:
1、随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统,分布式集群系统中所有机器的代码都是一样的,每台机器会在同一时间点执行定时任务,也即,存在多个服务同时执行该时间点的任务。
2、目前,通常在redis数据库设置锁,以控制一个固定的应用服务来运行定时任务。然而,一个应用服务可能存在多个实例,因此会出现多个实例重复执行定时任务,例如,实例1拿到锁执行定时任务后释放,紧接着实例2获取到锁又重新执行一遍定时任务,进而导致程序性能较低,且重复工作会对数据造成不可估量的损失,如重复更新,重复删除操作等。
技术实现思路
1、本发明提供一种定时任务调度方法、装置、设备及存储介质,旨在解决多个实例重复执行相同的定时任务,导致程序性能较低的技术问题。
2、本发明提供一种定时任务调度方法,包括:
3、响应于定时任务的触发指令,读取所述定时任务对应的数据库中锁的节点ip;
4、确定所述节点ip与主服务实例的虚拟ip相匹配,触发所述主服务实例执行所述定时任务,其中,所述主服务实例是从所述数据库中获取到锁对应的服务实例。
5、根据本发明提供的一种定时任务调度方法,所述读取所述定时任务对应的数据库中锁的节点ip之前,还包括:
6、读取预先配置的所有服务实例的虚拟ip;
7、基于各所述服务实例的虚拟ip,配置所述数据库中锁对应的节点ip。
8、根据本发明提供的一种定时任务调度方法,所述基于各所述服务实例的虚拟ip,配置所述数据库中锁对应的节点ip,包括:
9、在各所述服务实例的虚拟ip中选取所述定时任务对应的目标虚拟ip;
10、将所述数据库中锁对应的节点ip配置为所述目标虚拟ip。
11、根据本发明提供的一种定时任务调度方法,所述基于各所述服务实例的虚拟ip,配置所述数据库中锁对应的节点ip,包括:
12、确定获取到所述锁对应的目标服务实例;
13、将所述数据库中锁对应的节点ip配置为所述目标服务实例对应的虚拟ip。
14、根据本发明提供的一种定时任务调度方法,所述确定所述节点ip与主服务实例的虚拟ip相匹配,触发所述主服务实例执行所述定时任务,包括:
15、若所述节点ip与所述主服务实例的虚拟ip相匹配,则控制所述主服务实例执行所述定时任务;
16、若所述节点ip与所述主服务实例的虚拟ip不相匹配,则控制所述主服务实例进行解锁。
17、根据本发明提供的一种定时任务调度方法,所述触发所述主服务实例执行所述定时任务之前,还包括:
18、若检测到所述主服务实例处于宕机状态,则在所述锁的过期时间到达后,控制所述主服务实例进行解锁;
19、在其余服务实例中确定获取到所述锁的目标实例,其中,所述其余服务实例表示除所述主服务实例之外的各个服务实例;
20、基于所述目标实例的虚拟ip,配置所述锁对应的节点ip,并将所述目标实例作为新的主服务实例。
21、根据本发明提供的一种定时任务调度方法,所述响应于定时任务的触发指令,读取所述定时任务对应的数据库中锁的节点ip,包括:
22、响应于定时任务的触发指令,触发预先配置的ip读取命令;
23、基于所述ip读取命令,读取得到所述数据库中锁的节点ip。
24、本发明还提供一种定时任务调度装置,包括:
25、读取模块,用于响应于定时任务的触发指令,读取所述定时任务对应的数据库中锁的节点ip;
26、执行模块,用于确定所述节点ip与主服务实例的虚拟ip相匹配,触发所述主服务实例执行所述定时任务,其中,所述主服务实例是从所述数据库中获取到锁对应的服务实例。
27、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述定时任务调度方法。
28、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述定时任务调度方法。
29、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述定时任务调度方法。
30、本发明提供的定时任务调度方法、装置、设备及存储介质,方法包括:响应于定时任务的触发指令,读取所述定时任务对应的数据库中锁的节点ip;确定所述节点ip与主服务实例的虚拟ip相匹配,触发所述主服务实例执行所述定时任务,其中,所述主服务实例是从所述数据库中获取到锁对应的服务实例。实现了通过将获取到锁对应的服务实例作为主服务实例,进而当触发定时任务时,验证锁的节点ip与主服务实例的虚拟ip是否相匹配,从而触发主服务实例执行定时任务,而其他实例则不会重复执行该定时任务,从而有效避免了重复执行相同的定时任务、重新更新或者删除的错误操作。
1.一种定时任务调度方法,其特征在于,包括:
2.根据权利要求1所述的定时任务调度方法,其特征在于,所述读取所述定时任务对应的数据库中锁的节点ip之前,还包括:
3.根据权利要求2所述的定时任务调度方法,其特征在于,所述基于各所述服务实例的虚拟ip,配置所述数据库中锁对应的节点ip,包括:
4.根据权利要求2所述的定时任务调度方法,其特征在于,所述基于各所述服务实例的虚拟ip,配置所述数据库中锁对应的节点ip,包括:
5.根据权利要求1所述的定时任务调度方法,其特征在于,所述触发所述主服务实例执行所述定时任务之前,还包括:
6.根据权利要求1所述的定时任务调度方法,其特征在于,所述确定所述节点ip与主服务实例的虚拟ip相匹配,触发所述主服务实例执行所述定时任务,包括:
7.根据权利要求2所述的定时任务调度方法,其特征在于,所述响应于定时任务的触发指令,读取所述定时任务对应的数据库中锁的节点ip,包括:
8.一种定时任务调度装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述定时任务调度方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述定时任务调度方法。