一种基于quartz框架的任务调度管理系统及其方法

文档序号:9375350阅读:412来源:国知局
一种基于quartz框架的任务调度管理系统及其方法
【技术领域】
[0001]本发明涉及任务调度技术领域,具体涉及一种基于quartz框架的任务调度管理系统及其方法。
【背景技术】
[0002]随着电信运营商的系统规模越来越庞大,业务越来越复杂,需要配置大量的定时调度任务,但是现有的系统,一般存在下面的问题:
[0003](I) shell、sql脚本需要登录到各个业务主机维护,缺少对脚本任务的统一管理,脚本复用需要人工拷贝到各个主机,工作量大;
[0004](2)脚本容易被篡改,没有记录;
[0005](3)没有统一的调度管理,传统的办法是在主机上创建很多crontab任务,每个任务的执行状态、日志需要手工维护,工作量大;
[0006](4)对于执行失败、执行超时的任务不能及时发现。

【发明内容】

[0007]本发明所要解决的技术问题是提供一种基于quartz框架的任务调度管理系统及其方法,能够对各脚本任务的调度进行统一管理,降低了运维人员的工作量,提高了整个任务调度的效率。
[0008]本发明解决上述技术问题的技术方案如下:
[0009]所述系统包括至少一个调度管理装置和数据库;
[0010]所述调度管理装置包括:
[0011]脚本管理模块,用于编辑各脚本任务并将编辑的所述各脚本任务存储于数据库中;
[0012]调度管理模块,用于为所述各脚本任务分配对应的任务执行器和执行周期;
[0013]调度管理中心,用于从数据库中加载所有的脚本任务到quartz框架中,以使quartz框架按照所述执行周期将各脚本任务的执行指令下发给对应的任务执行器;以及接收各任务执行器返回的执行结果并将该执行结果存储于数据库中;
[0014]任务执行器,用于根据所述执行指令执行对应的脚本任务,并向所述调度管理中心返回执行结果。
[0015]另一方面,本发明提供了一种基于quartz的任务调度管理方法,所述方法包括:
[0016]S1、对各脚本任务进行编辑并将编辑的所述各脚本任务存储于数据库中;
[0017]S2、为所述各脚本任务分配对应的任务执行器和执行周期;
[0018]S3、从数据库中加载各脚本任务到quartz框架中,以使quartz框架按照所述执行周期将各脚本任务的执行指令下发给对应的任务执行器;
[0019]S4、任务执行器根据所述下发的执行指令对对应的脚本任务进行执行,并返回执行结果。
[0020]本发明提供了一种基于quartz框架的任务调度管理系统及其方法,调度管理系统能够实现对各个脚本任务的编辑以及分配对应的任务执行器,并向分配的任务执行器下发任务执行指令,任务执行器根据执行指令对对应的脚本任务进行执行。通过本发明提供的系统,能够实现对各个脚本任务执行调度的统一管理,对各脚本任务进行全局的管控,降低了运维人员的工作量,提高了整个任务调度的效率。
【附图说明】
[0021]图1为本发明实施例一的一种基于quartz框架的任务调度管理系统示意图;
[0022]图2为本发明实施例二的一种基于quartz框架的任务调度管理方法流程图。
【具体实施方式】
[0023]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0024]实施例一、一种基于quartz框架的任务调度管理系统。下面结合图1对本实施例提供的系统进行详细说明。
[0025]参见图1,本实施例提供的系统包括调度管理装置10和数据库20,其中,调度管理装置10包括脚本任务管理模块101、权限管理模块102、调度管理模块103、调度管理中心104、任务执行器105、日志管理模块106和告警管理模块107。
[0026]其中,调度管理装置10中的脚本管理模块101主要用于编辑各脚本任务并将编辑的各脚本任务存储于数据库中。
[0027]具体的,为了实现对各个任务调度的统一管理,其中,任务可以是shell、sql脚本任务,本实施例以脚本任务的统一调度为例进行说明。脚本管理模块101首先需要统一编辑好各个脚本任务并且将编辑好的各个脚本任务存储于数据库20中。另外,还会将编辑的各任务脚本下发给调度管理中心104以作为局部脚本任务的存储。脚本管理模块101还对各个脚本任务的版本进行管理,以及记录每个脚本任务的变更信息,防止各脚本任务丢失或者被篡改。
[0028]权限管理模块102主要用于对各脚本任务的操作权限进行管理。
[0029]具体的,当脚本管理模块101编辑好各个脚本任务后,为了保证各脚本任务的安全性,权限管理模块102对各脚本任务的操作权限进行配置,即针对不同的管理角色,配置不同的操作权限,比如,对各脚本任务的查看、编辑、删除、更改及执行等分配不同的权限。
[0030]调度管理模块103主要用于为各脚本任务分配对应的任务执行器和执行周期。
[0031]具体的,调度管理模块103为编辑好的各脚本任务分配对应的任务执行器(即脚本任务在哪些任务执行器上执行)和执行周期。为各个脚本任务配置其执行周期,以使后续的任务执行器可以按照各自的执行周期对各脚本任务进行执行。当脚本任务对应的任务执行器发生变更时,比如,新增、修改等,也会对这些更新信息进行同步更新。
[0032]调度管理中心104主要用于当需要进行脚本任务执行时,从数据库20中加载所有的脚本任务到quartz框架中,以使quartz框架按照前述为各脚本任务分配的执行周期将各脚本任务的执行指令下发给对应的任务执行器105 ;以及接收各任务执行器105返回的执行结果并将该执行结果存储于数据库20中。
[0033]具体的,当需要对各脚本任务执行时,调度管理中心104从数据库20中加载所有的脚本任务到调度管理中心104中的quartz框架中,同时调度管理中心104还提供增量同步接口,包括脚本任务的启用、停止、增加、修改、删除等操作。
[0034]调度管理中心104加载完数据库20中的所有脚本任务后,调度管理中心104中的quartz框架会定时将任务执行指令下发给对应的任务执行器105。
[0035]需要说明的是,本实施例中配置的调度管理中心104可以为一个也可以为多个,通常为多个,当配置的调度管理中心104为多个时,选择其中的一个调度管理中心104对所有(包括选择的调度管理中心)调度管理中心104进行负载均衡处理。
[0036]各个任务执行器105主要用于根据调度管理中心104中的quartz框架下发的任务执行指令执行对应的脚本任务,并向调度管理中心104返回执行结果。
[0037]具体的,当任务执行器105接收到quartz框架下发的任务执行指令后,对对应的脚本任务进行执行。其中,任务执行器105对对应脚本任务的执行方式通常有两种,即远程执行和本地执行。当任务执行器105对对应的脚本任务进行远程执行时,可通过telnet/ssh/ftp命令进行远程操作并返回执行结果。
[0038]调度管理中心104接收到各任务执行器105返回的执行结果将执行结果进行汇总分析后存储于数据库20中以供查询。
[0039]日志管理中心106主要用于对各任务执行器105执行对应的脚本任务的执行日志进行管理,比如,通过查看各脚本任务的执行日志了解各脚本任务的执行状态等。
[0040]告警管理模块107主要用于当脚本任务在任务执行器104上执行失败或执行超时时,向相关负责人发送告警通知。
[0041
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1