一种任务集群调度管理的方法技术

技术编号:17406458 阅读:55 留言:0更新日期:2018-03-07 04:30
本发明专利技术一种任务集群调度管理的方法,将执行任务调度的服务器节点分离为调度中心和执行器,该调度中心包括调度池、Quartz调度器、回调服务和调度日志,负责管理调度信息,按照调度信息的配置发出调度请求;该执行器包括服务器、任务执行队列、任务对象,该服务器负责接收调度中心的心跳检测信息、任务触发信息,执行器通过服务器收到调度中心的任务信息,封装成任务对象加入任务执行队列中等待执行,到达执行时间,任务对象开始执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心。本发明专利技术调度中心与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务。由于任务专注于执行操作,开发和维护更加简单和高效。

A method of task cluster scheduling management

【技术实现步骤摘要】
一种任务集群调度管理的方法
本专利技术涉及一种任务集群调度管理的方法。技术背景互联网项目接入定时任务的情况越来越多,quratz是目前最为成熟、使用最广泛的java任务调度框架,功能强大配置灵活.在企业应用中占重要地位。随着分布式设计的大规模运用,定时器分布式也是势在必行。quartz本身事实上也是支持集群架构的。如图1所示,在quartz集群模式下,每个服务器节点把所有将要及正在运行的任务状态都即时同步到中央数据库,当任一服务器节点再次触发调用任务时,从中央数据库中分析是否已有别的服务器节点正在运行相同任务(即同名同定时时间点的任务),如果存在相同任务正在别的服务器节点上运行的情形,那么当前服务器节点忽略本次运行的任务。上述quartz集群模式存在如下不足:1、调度逻辑和任务耦合在同一个项目中,随着任务数量逐渐增多、调度逻辑逐渐加重的情况下,调度系统的性能将大大受限于业务;2、需要持久化业务(QuartzJobBean)到底层业务数据库表中,系统侵入性相当严重。
技术实现思路
本专利技术的目的在于提供一种任务集群调度管理的方法,将调度和任务分离开,将所有的任务进行了分布式管理,任务调度时,能够让任务按配置进行有效地执行,多个任务执行时不会相互干扰。本专利技术一种任务集群调度管理的方法,将执行任务调度的服务器节点分离为调度中心和执行器,该调度中心包括调度池、Quartz调度器、回调服务和调度日志,负责管理调度信息,按照调度信息的配置发出调度请求;该执行器包括服务器、任务执行队列、任务对象,该服务器负责接收调度中心的心跳检测信息、任务触发信息,执行器通过服务器收到调度中心的任务信息,封装成任务对象加入任务执行队列中等待执行,到达执行时间,任务对象开始执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心。所述的任务调度包括如下具体步骤:步骤1、执行器启动前先配置调度中心调度池中的执行器注册地址和任务执行结果反馈地址;步骤2、执行器启动时,通过该注册地址将每个执行器的IP、端口信息注册到调度中心,在调度中心的调度池中形成执行器地址列表;步骤3、调度中心间隔阈值时间扫描执行器地址列表,并向执行器地址列表逐个发布心跳包,检测执行器是否可用,执行器在心跳包中上传自己的任务信息列表,该任务信息列表对应调度池中的JobHandler,同一执行器可配置多个JobHandler,用以执行不同的任务;调度中心通过该上传的任务信息列表更新该执行器的任务信息列表,通过上述心跳过程,调度中心保存了所有可用执行器的地址和每个执行器可调度的任务信息列表;对于在预置的心跳周期内检测失败的执行器从执行器地址列表中移除,所述被移除的执行器排除异常后可重新注册到调度中心。步骤4、用户通过Quartz客户端API向调度中心共用的数据库中添加Quartz任务任务信息;步骤5、调度中心检测到Quartz某个任务触发后遍历执行器列表,并检测执行器的任务信息列表,如果某个执行器的任务信息列表中该任务,则根据执行器注册上来的地址,向该执行器发送该任务的执行指令,并异步接收执行结果,如果执行失败则换一个执行器重试,直至任务执行成功;步骤6、执行器收到调度中心的任务信息,封装成任务对象,加入执行队列等待执行;步骤7、任务对象等待达到执行时间并执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心。本专利技术中调度中心与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务。由于任务专注于任务的执行等操作,开发和维护更加简单和高效。附图说明图1是传统的调度与任务执行的示意图;图2是本专利技术调度与任务分离的示意图。以下结合附图和实施例对本专利技术做进一步详述。具体实施方式如图1所示,本专利技术一种任务集群调度管理的方法,将执行任务调度的服务器节点分离为调度中心和执行器,该调度中心包括调度池、Quartz调度器、回调服务和调度日志,负责管理调度信息,按照调度信息的配置发出调度请求,自身不承担业务代码;该执行器包括服务器(可以是jetty、tomcat等常用服务器)、任务执行队列、任务对象,该服务器负责接收调度中心的心跳检测信息、任务触发信息,执行器通过服务器收到调度中心的任务信息,封装成任务对象,加入任务执行队列等待执行,到达执行时间任务对象开始执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心,包括如下任务调度的具体步骤:步骤1、执行器启动前先配置调度中心调度池中的执行器注册地址和任务执行结果反馈地址;步骤2、执行器启动时,通过该注册地址将每个执行器的IP、端口信息注册到调度中心,在调度中心的调度池中形成执行器地址列表;步骤3、调度中心间隔5秒扫描执行器地址列表,并向执行器地址列表逐个发布心跳包,检测执行器是否可用,执行器在心跳包中上传自己的任务信息列表,该任务信息列表对应图2中的JobHandler,同一执行器可配置多个JobHandler,用以执行不同的任务;调度中心通过该上传的任务信息列表更新该执行器的任务信息列表,通过上述心跳过程,调度中心保存了所有可用执行器的地址和每个执行器可调度的任务信息列表;对于在3个心跳周期内检测失败的执行器从执行器地址列表中移除,所述被移除的执行器排除异常后可重新注册到调度中心。步骤4、用户通过Quartz客户端API向调度中心共用的数据库中添加Quartz任务任务信息;步骤5、调度中心检测到Quartz任务(如任务A)触发后遍历执行器列表,并检测执行器的任务信息列表,如果某个执行器的任务信息列表中有任务A,则根据执行器注册上来的地址,向该执行器发送任务A的执行指令,并异步接收执行结果,如果执行失败则换一个执行器重试,直至任务执行成功;步骤6、执行器收到调度中心的任务信息,封装成任务对象,加入执行队列等待执行;步骤7、任务对象等待达到执行时间并执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心。以上所述,仅是本专利技术较佳实施例而已,并非对本专利技术的技术范围作任何限制,故凡是依据本专利技术的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本专利技术技术方案的范围内。本文档来自技高网...
一种任务集群调度管理的方法

【技术保护点】
一种任务集群调度管理的方法,其特征在于:将执行任务调度的服务器节点分离为调度中心和执行器,该调度中心包括调度池、Quartz调度器、回调服务和调度日志,负责管理调度信息,按照调度信息的配置发出调度请求;该执行器包括服务器、任务执行队列、任务对象,该服务器负责接收调度中心的心跳检测信息、任务触发信息,执行器通过服务器收到调度中心的任务信息,封装成任务对象加入任务执行队列中等待执行,到达执行时间,任务对象开始执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心。

【技术特征摘要】
1.一种任务集群调度管理的方法,其特征在于:将执行任务调度的服务器节点分离为调度中心和执行器,该调度中心包括调度池、Quartz调度器、回调服务和调度日志,负责管理调度信息,按照调度信息的配置发出调度请求;该执行器包括服务器、任务执行队列、任务对象,该服务器负责接收调度中心的心跳检测信息、任务触发信息,执行器通过服务器收到调度中心的任务信息,封装成任务对象加入任务执行队列中等待执行,到达执行时间,任务对象开始执行,并将最终任务执行结果通过调度中心的指定接口异步返回给调度中心。2.根据权利要求1所示的一种任务集群调度管理的方法,其特征在于任务调度包括如下具体步骤:步骤1、执行器启动前先配置调度中心调度池中的执行器注册地址和任务执行结果反馈地址;步骤2、执行器启动时,通过该注册地址将每个执行器的IP、端口信息注册到调度中心,在调度中心的调度池中形成执行器地址列表;步骤3、调度中心间隔阈值时间扫描执行器地址列表,并向执行器地址列表逐个发布心跳包,检测执行器是否可用,执行器在心跳包中上传自己的任务信息...

【专利技术属性】
技术研发人员:涂建群
申请(专利权)人:南威软件股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1