分布式定时任务调度系统及方法技术方案

技术编号:14010847 阅读:119 留言:0更新日期:2016-11-17 11:45
本申请公开了分布式定时任务调度系统及方法。所述分布式定时任务调度系统包括:调度器,用于进行多个定时任务的任务分配;定时器,所述定时器包括多个定时器模块,用于根据所述任务分配启动定时;执行器,所述执行器多个服务模块,所述多个服务模块根据所述多个定时器模块的指令,在达到所述多个定时任务的时间条件时启动或停止执行服务;以及分布式服务框架,用于支持所述调度器和所述定时器分布式部署和运行,其中,所述调度器在系统运行期间动态分配定时任务。所述分布式定时任务调度系统中的调度器和定时器以分布方式运行,从而可以提高系统效率。该系统允许动态分配定时任务,便于进行任务管理,从而可以改善用户体验。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体涉及分布式定时任务调度系统及方法
技术介绍
在大型软件系统构建过程中经常涉及异步任务处理,异步任务通过定时器定时调度执行。在Java平台下,现有的定时任务调度模块包括Spring框架自带的轻量级任务模块(即Spring task),或者Spring框架支持的Quartz调度器(即Quartz调度器)。在Spring框架中可以采用任务模块调度执行定时任务时,可以配置任务模块,指定定时任务执行入口及时间规则。该任务模块随Spring启动而启动,到达定时时间后执行定时任务。然而,Spring框架本身是一个JavaEE应用框架,不支持分布式机制。Spring框架下的定时任务均是单实例执行。Spring框架没有实现实例间相互协作及数据交互的机制,因此,利用Spring框架本身无法直接实现将定时任务集合分布到不同定时器模块上,也不可能在系统运行期间动态增减定时器模块以及与重新调度期间受影响的定时任务重新执行。在Spring框架中也可以使用Quartz调度器调度执行定时任务。Quartz调度器是一个企业级的定时任务调度系统,本身支持集群功能。Quartz调度器使用数据库锁方式来控制哪个Quartz调度器实例执行定时任务。然而,对数据库加锁操作,不仅性能低下而且容易产生死锁,因此并不适合于定时任务较多的大型分布式系统。上述现有的定时任务调度模块均可以看作定时任务调度的组件,而非完备的系统。定时任务调度模块与任务模块的执行都在同一个进程空间中。当定时任务较多时,系统负载较重、性能低下且强耦合,从而难以直接应用到大型系统中,不利于形成独立可云端部署的产品。而且,现有的定时任务调度模块没有web管理端,难以对定时任务进行管理,如增加、修改、删除定时任务,以及查看定时任务执行情况等等,因而使用不便,用户体验不佳。
技术实现思路
有鉴于此,本专利技术的目的在于提供分布式定时任务调度系统及方法,其中,调度器和定时器以分布方式运行,并且允许在web端对定时任务进行管理,从而可以提高系统效率和改善用户体验。根据本专利技术的一方面,提供一种分布式定时任务调度系统,包括:调度器,用于进行多个定时任务的任务分配;定时器,所述定时器包括多个定时器模块,用于根据所述任务分配启动定时;执行器,所述执行器多个服务模块,所述多个服务模块根据所述多个定时器模块的指令,在达到所述多个定时任务的时间条件时启动或停止执行服务;以及分布式服务框架,用于支持所述调度器和所述定时器分布式部署和运行,其中,所述调度器在系统运行期间动态分配定时任务。优选地,所述调度器根据哈希一致性算法将所述多个定时任务分配给所述多个定时器模块。优选地,在所述多个定时任务变化的情形下,所述调度器将所述多个定时任务中的至少一部分定时任务重新分配给所述多个定时器模块。优选地,所述调度器监听定时器模块的状态,以确定所述多个定时任务是否发生变化。优选地,所述调度器包括主调度器模块和从调度器模块,并且,所述主调度器模块针对所述多个定时任务,选择所述调度器中的相应一个调度器模块分配定时任务。优选地,所述调度器和所述定时器之间采用同步接口进行通信,所述定时器和所述执行器之间采用Http请求进行通信。优选地,还包括:web管理端,所述web管理端提供用户界面,用于添加、修改、删除定时任务,以及用于查看定时任务的执行情况。优选地,所述web管理端与所述调度器之间采用同步接口进行通信。优选地,所述同步接口为thrift协议的接口。优选地,还包括数据库,用于存储所述调度器和所述定时器的配置数据和缓存数据。根据本专利技术的另一方面,提供一种分布式定时任务调度方法,包括:启动多个服务模块;根据分配定时任务请求,调度器分配定时任务,其中,调度器从定时器中的多个定时器模块中选择相应的定时器模块及传送任务规则;选定的定时器模块根据任务规则启动定时;以及在达到所述多个定时任务的时间条件时,所述选定的定时器模块启动或停止执行所述多个服务模块中的相应服务,其中,所述调度器和所述定时器以分布式方式运行,并且所述调度器在系统运行期间动态分配定时任务。优选地,调度器分配定时任务的步骤包括:根据哈希一致性算法将所述多个定时任务分配给所述多个定时器模块。优选地,调度器分配定时任务的步骤包括:根据所述定时任务的ID生成第一哈希值;根据所述多个定时器模块的ID生成多个第二哈希值;以及将所述第一哈希值和所述多个第二哈希值映射到闭合的环形空间中。优选地,针对所述第一哈希值,根据所述环形空间中所述多个第二哈希值中按顺时钟最近的方式关联相应的第二哈希值,根据第一哈希值及相应的第二哈希值建立所述定时任务与所述多个定时器模块的对应关系,根据所述对应关系,所述调度器将所述定时任务分配给所述多个定时器模块中相应的一个定时器模块。优选地,在所述定时任务变化的情形下,所述调度器重新分配定时任务。优选地,所述调度器监听定时器模块的状态,以确定所述多个定时任务是否发生变化。优选地,所述调度器和所述定时器之间采用同步接口进行通信,所述定时器和所述执行器之间采用Http请求进行通信。优选地,所述任务规则包括服务名称以及时间设定条件。优选地,所述时间设定条件包括:在延迟预定时间后所述服务一次,或者所述服务以预定时间间隔周期性执行。所述分布式定时任务调度系统中的调度器和定时器以分布方式运行,从而可以提高系统效率。该系统允许动态分配定时任务,便于进行任务管理,从而可以改善用户体验。附图说明通过参照以下附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:图1为根据本专利技术实施例的分布式定时任务调度系统的系统架构图;图2示出根据本专利技术实施例的分布式定时任务调度方法的流程图;图3示出根据本专利技术实施例的分布式定时任务调度方法中初始分配任务的流程图;图4a和4b示出根据本专利技术实施例的分布式定时任务调度方法中初始分配任务的不同步骤的示意图;图5示出根据本专利技术实施例的分布式定时任务调度方法中重新分配任务的流程图;以及图6a至6c示出根据本专利技术实施例的分布式定时任务调度方法中重新分配任务的不同步骤的示意图。具体实施方式以下基于实施例对本专利技术进行描述,但是本专利技术并不仅仅限于这些实施例。在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。为了避免混淆本专利技术的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。附图中的流程图、框图图示了本专利技术实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对专利技术本身的限制。图1为根据本专利技术实施例的分布式定时任务调度系统的系统架构图。该分布式定时任务调度系统包括分布式服务框架110、数据库120、调度器130、定时器140和执行器150。分布式服务框架110作为系统的全局分布式协调器,用于管理调度器130和定时器140。分布式服本文档来自技高网
...
分布式定时任务调度系统及方法

【技术保护点】
一种分布式定时任务调度系统,包括:调度器,用于进行多个定时任务的任务分配;定时器,所述定时器包括多个定时器模块,用于根据所述任务分配启动定时;执行器,所述执行器多个服务模块,所述多个服务模块根据所述多个定时器模块的指令,在达到所述多个定时任务的时间条件时启动或停止执行服务;以及分布式服务框架,用于支持所述调度器和所述定时器分布式部署和运行,其中,所述调度器在系统运行期间动态分配定时任务。

【技术特征摘要】
1.一种分布式定时任务调度系统,包括:调度器,用于进行多个定时任务的任务分配;定时器,所述定时器包括多个定时器模块,用于根据所述任务分配启动定时;执行器,所述执行器多个服务模块,所述多个服务模块根据所述多个定时器模块的指令,在达到所述多个定时任务的时间条件时启动或停止执行服务;以及分布式服务框架,用于支持所述调度器和所述定时器分布式部署和运行,其中,所述调度器在系统运行期间动态分配定时任务。2.根据权利要求1所述的分布式定时任务调度系统,其中,所述调度器根据哈希一致性算法将所述多个定时任务分配给所述多个定时器模块。3.根据权利要求2所述的分布式定时任务系统,其中,在所述多个定时任务变化的情形下,所述调度器将所述多个定时任务中的至少一部分定时任务重新分配给所述多个定时器模块。4.根据权利要求3所述的分布式定时任务系统,其中,所述调度器监听定时器模块的状态,以确定所述多个定时任务是否发生变化。5.根据权利要求2所述的分布式定时任务系统,其中,所述调度器包括主调度器模块和从调度器模块,并且,所述主调度器模块针对所述多个定时任务,选择所述调度器中的相应一个调度器模块分配定时任务。6.根据权利要求2所述的分布式定时任务系统,其中,所述调度器和所述定时器之间采用同步接口进行通信,所述定时器和所述执行器之间采用Http请求进行通信。7.根据权利要求2所述的分布式定时任务系统,还包括:web管理端,所述web管理端提供用户界面,用于添加、修改、删除定时任务,以及用于查看定时任务的执行情况。8.根据权利要求7所述的分布式定时任务系统,其中,所述web管理端与所述调度器之间采用同步接口进行通信。9.根据权利要求6或8所述的分布式定时任务系统,其中,所述同步接口为thrift协议的接口。10.根据权利要求2所述的分布式定时任务系统,还包括数据库,用于存储所述调度器和所述定时器的配置数据和缓存数据。11.一种分布...

【专利技术属性】
技术研发人员:魏佳
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1