[发明专利]定时任务集群方法及其装置在审
申请号: | 201410055769.3 | 申请日: | 2014-02-19 |
公开(公告)号: | CN103744724A | 公开(公告)日: | 2014-04-23 |
发明(设计)人: | 高雷 | 申请(专利权)人: | 互联网域名系统北京市工程研究中心有限公司;北龙中网(北京)科技有限责任公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京万慧达知识产权代理有限公司 11111 | 代理人: | 张金芝;杨颖 |
地址: | 101408 北京市怀柔*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 定时 任务 集群 方法 及其 装置 | ||
技术领域
本发明属于计算机技术领域,具体涉及一种定时任务集群方法及其装置。
背景技术
在linux环境下,通常采用Crontab技术执行定时任务。但这种技术方案存在单点问题,即某一台linux服务器上,如果crontab进程工作异常或者linux服务器本身宕机损坏,会导致目标任务不能按预期定时执行;如果使用多个linux服务器部署crontab任务,又存在相同任务被重复执行的问题。
Spring quartz是JAVA领域一项与crontab相类似的定时处理技术,存在和crontab相同的执行机制和缺陷。无法解决单点问题,达不到高可用。
针对crontab等简单集群技术所遇到的单点问题,Quartz集群技术实现了定时任务的高可用,使用多个定时任务实例通过争锁机制决定某时间点由其中一个定时任务实例来执行定时任务。由于现有的quartz集群技术通常使用数据库作为锁介质,集群方案十分笨重,且由于定时集群的高可用依赖于数据库的高可用,实际加大了定时集群实现高可用的难度。
发明内容
本发明提供一种定时任务集群方法及其装置,其可以解决解决现有技术中定时任务方案的单点问题,从而实现定时集群的高可用。
为实现上述目的,本发明提供一种定时任务集群方法,该定时任务集群方法包括:
将集群内的节点分布式部署在至少三个的奇数个服务器节点上;
将定时任务实例分布式部署在各个定时任务节点上;
各个定时任务实例按照计划时间点从集群内获取定时任务执行权利,获得写入权的定时任务实例将执行定时任务,未获得写写入权的定时任务实例则放弃执行定时任务,直至下一个计划时间点,再循环执行获取定时任务执行权利。
进一步地,还包括:
各定时任务实例按照相同的路径命名规则向集群内申请写入相同的路径信息。
进一步地,所述路径命名规则包括:
根据定时任务包名、类名、当前时间戳,生成节点路径。
进一步地,还包括:
各个定时任务执行定时计算时,采用分布式锁机制,按照相同的路径命名规则,向集群内申请创建一个临时节点,并获得所述临时节点下的所有创建节点的序号,根据所述临时节点的序号,判断是否获得锁成功以确定是否执行定时计算。
进一步地,判断是否获得锁成功以确定是否执行定时计算具体包括:
判断所述临时节点的序号是否为最小,若是,则获得锁,继续执行定时计算,计算完毕删除临时节点;若否,则获得锁失败,删除临时节点,取消本次定时计算。
进一步地,各个定时任务节点启动时保持时间同步。
进一步地,还包括:
根据对定时任务的包名以及类名进行区分,以实现不同的定时任务共享集群。
为实现上述目的,本发明提供一种实现定时任务集群的装置,该装置包括:
节点设置单元,用于将集群内的节点分布式部署在3个以上的单数个服务器节点上;
定时任务实例设置单元,用于将定时任务实例分布式部署在各个定时任务节点上;
定时任务执行单元,用于各个定时任务实例按照计划时间点从集群内获取定时任务执行权利,获得写入权的定时任务实例将执行定时任务,未获得写写入权的定时任务实例则放弃执行定时任务,直至下一个计划时间点,再循环执行获取定时任务执行权利。
进一步地,还包括:
各个定时任务执行定时计算时,采用分布式锁机制,按照相同的路径命名规则,向集群内申请创建一个临时节点,并获得所述临时节点下的所有创建节点的序号,根据所述临时节点的序号,判断是否获得锁成功以确定是否执行定时计算。
进一步地,判断是否获得锁成功以确定是否执行定时计算具体包括:
判断所述临时节点的序号是否为最小,若是,则获得锁,继续执行定时计算,计算完毕删除临时节点;若否,则获得锁失败,删除临时节点,取消本次定时计算。
本发明提供的定时任务集群方法及其装置,通过定时任务多点部署,解决现有技术中定时任务方案的单点问题。本发明中多个定时任务实例同时运行,在预期时间点,只有一个定时任务实例执行任务;即使其中一个实例因为意外故障无法运行,仍有其他实例保证定时任务得到执行;采用zookeeper分布式锁机制,在同时具有多个定时任务实例的情况下,保证只有一个实例获得执行权限。它避免了采用数据库这样笨重的锁方案,使定时任务集群在部署及维护上更加简单便捷。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于互联网域名系统北京市工程研究中心有限公司;北龙中网(北京)科技有限责任公司,未经互联网域名系统北京市工程研究中心有限公司;北龙中网(北京)科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410055769.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多核资源的调度方法及装置
- 下一篇:一种确认程序正确的方法及装置