一种分布式多任务调度管理系统的制作方法

文档序号:6509867阅读:201来源:国知局
一种分布式多任务调度管理系统的制作方法
【专利摘要】本发明公开了一种分布式多任务调度管理系统,包括:数据存储装置;调度管理装置,与数据存储装置相连,用于接收用户提交的任务模型并保存到数据存储装置中;多个任务执行装置,分别与数据存储装置相连,用于从数据存储装置中获取各自所需的至少一个任务模型,然后根据任务模型创建任务实例并运行,同时将任务实例的属性及运行状态保存到所述数据存储装置中;在任务实例执行过程中,实时更新所述运行状态;其中,所述调度管理装置包括管理接口,供用户对任务模型和/或任务实例执行管理操作。本发明能够对分布式环境下需在不同应用服务器上运行的定时任务进行统一的发布及运行时管理,实现了对分布式环境下执行的多个任务进行统一的管理和调度。
【专利说明】一种分布式多任务调度管理系统
【技术领域】
[0001]本发明涉及计算机信息处理【技术领域】,尤其涉及一种分布式多任务调度管理系统。
【背景技术】
[0002]计算机已经应用到各个行业,为社会的高速发展起到了很大的促进作用。随着计算机软件应用越来越广泛和持久,人们工作越来越多地依赖软件来提高工作效率和规范企业的流程管理。在这样的一种趋势和压力下,软件行业一直在不断地发展和创新,以满足越来越多的社会要求。同时软件开发的技术也得到了很大的发展,针对各方面的要求产生了许多专门的处理技术,这其中就包括定时器处理技术。
[0003]在软件程序中经常要实现这样的任务,比如每天或每周星期二晚上,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应该能够知道其执行失败并尝试重新执行。这种任务常见的有数据备份、数据挖掘、日志分析、排行统计等。这种工作任务的特性就是有规律地重复执行,如果通过人为完成这些任务,比较困难也不安全。
[0004]企业管理系统后台中目前运行的定时任务主要依赖于linux cixmtab或基于java的quartz框架。优点是实现简单,将任务封装为action (crontab)或实现Quartz的Job接口后利用cron表达式进行配置即可定时触发。缺点是只能在单机环境下部署执行,且无法监控任务的运行情况。

【发明内容】

[0005]为克服以上问题,本发明提出了如下技术方案:
[0006]一种分布式多任务调度管理系统,其特征在于包括:
[0007]数据存储装置;
[0008]调度管理装置,与所述数据存储装置相连接,用于接收用户提交的任务模型并将所接收的任务模型保存到所述数据存储装置中;
[0009]多个任务执行装置,分别与所述数据存储装置相连接,用于从数据存储装置中获取各自所需的至少一个任务模型,然后根据获取的任务模型创建任务实例并运行,同时将任务实例的属性及运行状态保存到所述数据存储装置中;在任务实例执行过程中,实时更新所述运行状态;
[0010]其中,所述调度管理装置包括管理接口,供用户对任务模型和/或任务实例执行管理操作。
[0011 ] 进一步地,所述管理接口包括任务实例管理接口,用户通过该接口执行任务实例管理操作,包括:监控任务实例的属性和运行状态、和/或改变任务实例的运行状态。
[0012]其中,所述改变任务实例的运行状态包括:终止、暂停、恢复、迁移、或重新执行任务实例。[0013]进一步地,所述管理接口包括任务模型管理接口,用户能够通过该接口执行任务模型管理操作,包括:创建任务模型、暂停、恢复、迁移、修改、和/或删除任务模型。
[0014]进一步地,所述管理接口为Web界面接口。
[0015]进一步地,所述任务模型包括:
[0016]任务执行装置标识,指示能够执行该任务模型的实例的任务执行装置;其中,为每个任务执行装置预先分配有一个互不相同的标识以示区分;
[0017]任务名称,用于指示所执行任务的名称;
[0018]任务执行计划表达式,用于定义任务执行的时间点;
[0019]任务文件,包括在任务执行装置上执行特定任务的程序及所依赖的类库;
[0020]任务描述信息,包括对该任务模型所执行的任务的描述信息。
[0021]进一步地,所述任务执行装置标识包括以下任一项:任务执行装置的名称、任务执行装置的ID、任务执行装置的网络地址。
[0022]进一步地,所述任务执行计划表达式是cron表达式。
[0023]进一步地,所述任务执行装置从数据存储装置中获取所需的任务模型,具体为:任务执行装置从数据存储装置中查找与自己具有相同任务执行装置标识的任务模型,并返回当前任务执行装置。
[0024]进一步地,所述数据存储装置还用于存储任务实例和/或任务模型的状态变迁历史日志。
[0025]进一步地,所述任务执行装置为应用服务器。
[0026]本发明能够对分布式环境下需在不同应用服务器上运行的定时任务进行统一的发布管理,查看任务运行状态和进度,并进行暂停、恢复执行任务等各种灵活的配置操作,实现了对分布式环境下执行的多个任务进行统一的管理和调度。
【专利附图】

【附图说明】
[0027]图1是本发明实施例所述的分布式多任务调度管理系统;
[0028]图2是示例性的任务模型创建(发布)流程;
[0029]图3是示例性的任务模型创建(发布)Web界面;
[0030]图4是示例性的任务实例管理Web界面;
[0031]图5是示例性的任务执行装置获取及执行任务的流程;
[0032]图6是示例性的任务实例状态变迁图;
[0033]图7是示例性的任务模型状态变迁图。
【具体实施方式】
[0034]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。
[0035]图1是本发明的优选实施方式所述的分布式多任务调度管理系统,用于对分布式执行的任务进行调度。如图1所示,本实施例所述调度系统100包括调度管理装置101、数据存储装置102、以及多个任务执行装置103-1、103-2、……103_n,在此统称为103,所述调度管理装置101和多个任务执行装置103分别与数据存储装置102相连。
[0036]所述调度管理装置101,用于接收用户提交的任务模型,并将所接收的任务模型保存到所述数据存储装置102中。
[0037]其中,所述任务模型用于定义用户要完成的任务及执行该任务所需的相关信息,即任务的定义;在具体执行时,根据该任务模型动态生成相应的任务实例。任务实例是指任务模型的一次具体执行过程。
[0038]所述任务模型具体包括:任务执行装置标识,任务名称,任务执行计划表达式,任务文件,任务描述信息。下面,对任务模型的各项构成要素分别进行介绍:
[0039]任务执行装置标识,指示能够执行该任务模型的实例的任务执行装置。在定义任务模型时,可以由用户指定由哪一个或哪几个任务执行装置来执行该任务模型的实例,这可以通过指定目标执行装置的标识信息来实现,其中,为每个任务执行装置预先分配有一个互不相同的标识以示区分。所述任务执行装置标识可以包括以下任一项或几项:任务执行装置的名称、任务执行装置的ID、任务执行装置的网络地址。
[0040]任务名称,用于指示所执行任务的名称。
[0041]任务执行计划表达式,用于定义任务执行的时间点。所述任务执行计划表达式可以是cron表达式,也可以是其他现有的或将来的能够定义任务的具体执行时间和执行计划的规范表达式。
[0042]任务文件,包括在任务执行装置上执行特定任务的程序及所依赖的类库。任务文件是用于完成用户指定任务的具体执行文件,例如可以是基于Java字节码生成的执行文件,其中将相关的类库一起打包成可执行的jar文件;除Java之外,还可以基于其他任意编程语言来定义所述任务文件。
[0043]任务描述信息,包括对该任务模型所执行的任务的描述性信息。
[0044]以上就是任务模型的基本构成。接下来介绍用户能够借助调度管理装置所提供的接口所完成的管理功能。
[0045]所述调度管理装置提供能够与用户交互的管理接口,用户可以通过该接口任务模型和/或任务实例进行管理,所完成的管理功能由相应的功能模块来实现。在实现方式上,优选以Web界面形式来实现该接口(系统结构为Browser/Server形式),当然也可以是其他的用户接口形式,例如特定于操作系统的GUI形式或命令行形式(系统结构为Client/Server 形式)。
[0046]其中,所述管理接口包括任务模型管理接口 1012,用户能够通过该接口执行任务模型管理操作,包括:创建任务模型、暂停、恢复、迁移、修改、和/或删除任务模型。
[0047]参见图2,给出了创建(发布)任务模型的示例性流程。用户首先利用编程语言编写任务文件,并与所需的类库一起打包成可执行程序文件,例如基于Java编写要执行的任务逻辑程序并生成相应的Jar文件,以此作为任务模型的任务文件。然后,用户通过浏览器访问以Web界面形式提供的任务模型管理接口,在界面上填写任务模型的各项信息并将先前生成的程序文件作为任务文件提交,最后,调度管理装置将用户创建的任务模型保存到数据存储装置如数据库中,以便任务执行装置如应用服务器进行查询。参见图3,给出了一个示例性的创建(发布)任务模型的Web界面,其中详细列出了任务模型的各项基本信息,用户可以通过该界面自定义一个任务模型并提交给调度管理装置,由调度管理装置将该任务模型发布到用户指定的任务执行装置如应用服务器上执行。
[0048]另外,所述管理接口还包括任务实例管理接口 1011,用户通过该接口对任务实例执行管理操作,包括:监控任务实例的属性和运行状态、和/或改变任务实例的运行状态。所述属性可以是任务实例的标识ID、任务名称、执行该任务实例的应用服务器名称、开始及结束时间等信息,所述运行状态包括该任务实例当前执行的进度及状态等动态变化的信
肩、O
[0049]参见图4,给出了一个示例性的对任务实例进行管理的Web界面,其中详细列出了所有或部分任务实例的详细信息,例如所在应用服务器的名称、当前任务名称、开始及结束时间、当前执行的进度及状态等信息,另外,用户还可以对任务实例执行相应的操作,如终止、暂停、恢复、迁移、或重新执行任务实例等(某些操作图中未列出)。而且,用户可以通过该界面对任务实例进行查询。
[0050]接下来介绍用于根据所述任务模型执行相应具体任务的任务执行装置。
[0051]所述调度管理系统100所包括的多个任务执行装置103,分别与所述数据存储装置102相连接,用于从数据存储装置中获取各自所需的至少一个任务模型,然后根据获取的任务模型创建相应的任务实例并运行,同时将任务实例的属性及运行状态保存到所述数据存储装置中;在任务实例执行过程中,实时更新所述运行状态。
[0052]所述任务执行装置可以是应用服务器,或者其他能够执行任务模型所定义任务的应用程序执行装置。
[0053]任务执行装置可以按照以下方式从数据存储装置中获取所需的任务模型:任务执行装置从数据存储装置中查找与自己具有相同任务执行装置标识的任务模型,并返回当前任务执行装置。
[0054]下面结合图5对任务执行装置获取及执行任务的过程进行详细描述。
[0055]任务执行装置如应用服务器上的后台进程从数据存储装置如数据库中获取所需的任务模型,例如,应用服务器名称或IP地址与当前应用服务器相同的一个或多个任务模型构成的列表;然后,判断当前时刻是否符合列表中某一个或某几个任务模型的Cron表达式所指示的执行时间,如果符合则执行相应的任务文件如Jar文件;在任务执行过程中,用户可以通过调度管理装置提供的任务实例管理接口监控任务实例的属性和运行状态、或者改变当前任务实例的运行状态信息,如设定任务的执行进度百分比、终止、暂停、恢复、迁移、或重新执行任务实例等。当用户请求终止当前实例的执行时,任务提前终止;当用户请求暂停当前任务实例的执行时,任务变为暂停状态,并等待用户发出恢复请求,当用户请求恢复时,任务继续执行。
[0056]任务实例从创建到消亡的真个生命周期中其状态会不断发生变化,例如,在任务执行装置执行任务实例的过程中遇到异常事件,或者用户对该任务实例实施终止、恢复、迁移等管理操作时,其状态都会改变。为了及时的反映这种变化,所述任务执行装置会根据任务实例执行的状态来及时更新所述任务实例的实时状态及状态变迁历史,所述调度管理装置也会根据对任务实例实施的管理操作来更新所述实时状态及状态变迁历史,相应地,所述数据存储装置还用于存储任务实例的状态变迁历史日志。
[0057]通过以上方式,用户能够对任务实例的执行过程有一个详细的了解,能够跟踪任务实例在执行过程中的各种状态及信息,为用户提供了重要的参考信息。
[0058]下面结合图6详细说明任务实例的状态变迁。
[0059]首先,创建新的任务实例后将其保存到任务实例执行列表中,其状态由new变为running,表示其进入运行状态;当运行中的任务实例收到终止请求,则先将其状态变为停止stop,然后执行停止该任务实例的操作,在该停止操作执行过程中,其状态为stopping,表示正在停止。当该停止操作执行完毕,即该任务实例被停止后,其状态变为terminated,即终止;当处于终止状态的任务实例收到恢复请求后,其状态变为redo,然后将该任务实例重新加入任务实例执行列表,并启动继续执行,当该任务实例启动后其状态重新变为running ;当处于终止状态的任务实例收到迁移请求后,其状态变为migrated,然后将该任务实例重新加入任务实例执行列表,并启动继续执行,当该任务实例启动后其状态重新变为running。当处于执行状态的任务实例发生异常时,其状态变为error ;当该任务实例正常运行结束时,其状态变为finished,即表示完成。
[0060]与上述状态变迁相对应的,在状态发生改变的同时会创建相应的日志记录,并将其保存到任务实例日志中。下表1给出了与图6所示的状态变迁相对应的示例性任务实例日志记录产生方式,日志记录所记载的信息包括当前任务实例的执行进度信息、以及其他任何与当前任务实例相关的、用户感兴趣的信息,而且可以通过可视化图形界面查看所创建的任务实例日志,具体内容不再赘述。
[0061 ] 表1示例性任务实例日志记录产生方式
【权利要求】
1.一种分布式多任务调度管理系统,其特征在于包括: 数据存储装置; 调度管理装置,与所述数据存储装置相连接,用于接收用户提交的任务模型并将所接收的任务模型保存到所述数据存储装置中; 多个任务执行装置,分别与所述数据存储装置相连接,用于从数据存储装置中获取各自所需的至少一个任务模型,然后根据获取的任务模型创建任务实例并运行,同时将任务实例的属性及运行状态保存到所述数据存储装置中;在任务实例执行过程中,实时更新所述运行状态; 其中,所述调度管理装置包括管理接口,供用户对任务模型和/或任务实例执行管理操作。
2.如权利要求1所述系统,其中,所述管理接口包括任务实例管理接口,用户通过该接口执行任务实例管理操作,包括:监控任务实例的属性和运行状态、和/或改变任务实例的运行状态。
3.如权利要求2所述系统,其中,所述改变任务实例的运行状态包括:终止、暂停、恢复、迁移、或重新执行任务实例。
4.如权利要求1所述系统,其中,所述管理接口包括任务模型管理接口,用户能够通过该接口执行任务模型管理操作,包括:创建任务模型、暂停、恢复、迁移、修改、和/或删除任务模型。
5.如权利要求1所述系统,其中,所述管理接口为Web界面接口。
6.如权利要求1所述系统,其中,所述任务模型包括: 任务执行装置标识,指示能够执行该任务模型的实例的任务执行装置;其中,为每个任务执行装置预先分配有一个互不相同的标识以示区分; 任务名称,用于指示所执行任务的名称; 任务执行计划表达式,用于定义任务执行的时间点; 任务文件,包括在任务执行装置上执行特定任务的程序及所依赖的类库; 任务描述信息,包括对该任务模型所执行的任务的描述信息。
7.如权利要求6所述系统,其中,所述任务执行装置标识包括以下任一项:任务执行装置的名称、任务执行装置的ID、任务执行装置的网络地址。
8.如权利要求7所述系统,其中,优选的,所述任务执行计划表达式是cron表达式。
9.如权利要求1所述系统,其中,所述任务执行装置从数据存储装置中获取所需的任务模型,具体为:任务执行装置从数据存储装置中查找与自己具有相同任务执行装置标识的任务模型,并返回当前任务执行装置。
10.如权利要求1所述系统,其中,所述数据存储装置还用于存储任务实例和/或任务模型的状态变迁历史日志;所述任务执行装置为应用服务器。
【文档编号】G06F9/46GK103677973SQ201310392421
【公开日】2014年3月26日 申请日期:2013年9月1日 优先权日:2013年9月1日
【发明者】何瑞科, 邓伟, 芦增辉, 史郁文, 王普, 聂琪, 李琨, 王晓菲 申请人:西安重装渭南光电科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1