[发明专利]一种定时任务集群及其执行方法在审
申请号: | 201711373898.7 | 申请日: | 2017-12-19 |
公开(公告)号: | CN108182108A | 公开(公告)日: | 2018-06-19 |
发明(设计)人: | 郝文贺;邹建军;杨培强 | 申请(专利权)人: | 山东浪潮商用系统有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 李世喆 |
地址: | 250100 山东省济南市*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务数据库 任务节点 任务集 发送 实例访问 实例执行 信息对应 重复执行 存储 锁定 概率 | ||
本发明提供了一种定时任务集群及其执行方法,该定时任务集群包括:定时任务数据库以及至少两个定时任务节点;定时任务数据库,用于存储至少一个待执行任务;在接收到定时任务节点发送的执行信息时,锁定与执行信息对应的待执行任务。每一个定时任务节点,用于布置一个定时任务实例;利用定时任务实例访问定时任务数据库中的至少一个待执行任务;将每一个待执行任务依次作为当前待执行任务,均执行:判断当前时间是否可以获取当前待执行任务的执行权利,如果是,利用定时任务实例执行当前待执行任务,并发送执行信息至定时任务数据库,以通知定时任务数据库当前待执行任务被执行。因此,本发明提供的方案可以降低待执行任务被重复执行的概率。
技术领域
本发明涉及计算机技术领域,特别涉及一种定时任务集群及其执行方法。
背景技术
随着计算机技术的发展,越来越多以周期性重复执行的任务或程序被定定义为定时任务。
目前,为了使定时任务可以定时执行,通常将定时任务作为待执行任务部署在一台服务器中,同时在该服务器中部署多个定时任务实例,以使所部署的定时任务实例来定时执行待执行任务。当待执行任务到达开始执行时间时,多个定时任务实例同时去获取该待执行任务。存在至少两个定时任务实例同时获取到待执行任务,并同时执行该待执行任务的情况。因此,现有的方式待执行任务被重复执行的概率较高。
发明内容
本发明实施例提供了一种定时任务集群及其执行方法,可以降低待执行任务被重复执行的概率。
第一方面,本发明实施例提供了一种定时任务集群,该定时任务集群包括:
定时任务数据库以及至少两个定时任务节点;
所述定时任务数据库,用于存储至少一个待执行任务;在接收到所述定时任务节点发送的执行信息时,锁定与所述执行信息对应的待执行任务;
每一个所述定时任务节点,用于布置一个定时任务实例;利用所述定时任务实例访问所述定时任务数据库中的所述至少一个待执行任务;将每一个所述待执行任务依次作为当前待执行任务,均执行:判断当前时间是否可以获取所述当前待执行任务的执行权利,如果是,利用所述定时任务实例执行所述当前待执行任务,并发送所述执行信息至所述定时任务数据库,以通知所述定时任务数据库所述当前待执行任务被执行。
优选地,
每一个所述定时任务节点,包括:判断模块、第一执行模块以及选择模块;
所述判断模块,用于判断所述当前待执行任务是否被所述定时任务数据库锁定;如果被锁定,触发所述选择模块;如果未被锁定,继续判断当前时间是否达到所述当前待执行任务对应的开始执行时间;如果达到,触发所述第一执行模块;如果未达到,触发所述选择模块;
所述第一执行模块,用于在所述判断模块的触发下,执行所述利用所述定时任务实例执行所述当前待执行任务;
所述选择模块,用于在所述判断模块的触发下,将与所述当前待执行任务相邻的下一个待执行任务作为当前待执行任务。
优选地,
每一所述定时任务实例包括:作业接口类、作业明细类、触发器以及调度器;
每一个所述定时任务节点,包括:第二执行模块;
所述第二执行模块,用于利用所述触发器触发所述作业接口类以及所述作业明细类获取所述当前待执行任务对应的至少一个业务数据;利用所述调度器控制所述作业接口类以及所述作业明细类利用所述至少一个业务数据执行所述当前待执行任务。
优选地,
每一个所述定时任务节点,包括:申请模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮商用系统有限公司,未经山东浪潮商用系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711373898.7/2.html,转载请声明来源钻瓜专利网。