一种可动态调整的任务调度系统和调度方法
【技术领域】
[0001]本发明涉及计算机应用领域,具体涉及一种任务调度系统以及任务调度方法。
【背景技术】
[0002]传统计算机应用业务系统的业务任务自动调度是在应用设计阶段预定义业务任务执行的时间规则,在实现时通过定时调度组件按照预定义的时间规则进行调度。采用这种方式的应用系统有如下缺点:
业务系统部署后,业务任务调度计划不能动态调整;
多个业务系统之间的业务任务存在依赖时,不同业务系统之间需要进行交互获取相关信息,增加了业务系统间的耦合性;
每个业务系统都有各自的业务任务调度逻辑以及业务任务调度日志信息,很难提供统一的业务任务调度管理;
业务系统同时包含调度逻辑和应用业务逻辑,耦合性强,扩展性差。
[0003]
【发明内容】
[0004]鉴于上述问题,本发明旨在提供一种能够支持业务任务调度计划的动态调整的任务调度系统以及任务调度方法。
[0005]进一步,本发明旨在提供一种能够支持不同应用系统之间的业务任务存在关联并且能够降低业务系统间的耦合性并能够提高业务系统任务调度的扩展性的任务调度系统以及任务调度方法。
[0006]本发明的任务调度系统,用于在多个业务系统之间进行业务任务调度,其特征在于,具备:
业务任务管理模块,用于对业务系统数据模型、业务任务数据模型、业务任务关联数据模型进行管理;
业务任务调度计划管理模块,用于对业务任务调度计划数据模型进行管理,并且在业务任务调度计划改变时触发下述的业务任务调度规划模块重新进行规划;以及
业务任务调度规划模块,用于根据业务任务调度计划规划规定时间内的任务调度,并且在业务任务调度计划改变时重新进行规划;
业务任务调度执行模块,用于周期性实例化业务任务调度。
[0007]优选地,所述业务任务规划模块用于产生和管理与业务任务调度日志数据模型对应的数据。
[0008]优选地,所述业务任务调度执行模块用于执行与业务任务调度日志数据模型对应的任务并且用于更新业务任务调度日志的状态。
[0009]优选地,所述业务任务调度规划模块用于根据业务任务调度计划规划在规定时间内的任务调度并且将规划后的信息记录在业务任务调度日志中并且在业务任务调度计划改变时重新进行规划。
[0010]优选地,所述业务任务管理模块、所述业务任务调度计划管理模块、所述业务任务调度规划模块、所述业务任务调度执行模块相互之间通过更新数据模型中的数据进行通信。
[0011]本发明的任务调度方法,其特征在于,包括下述步骤:
业务任务调度计划步骤,对业务任务调度创建业务任务调度计划;
业务任务调度规划步骤,根据业务任务调度计划规划规定时间内的业务任务调度,并且在业务任务调度计划改变时重新进行规划;
业务任务调度执行步骤,周期性实例化业务任务调度。
[0012]优选地,在所述业务任务调度执行步骤中,在还未周期性实例化业务任务的情况下,在创建新任务调度日志后,任务状态为“未执行”时,运维人员能够调整任务计划执行时间。
[0013]优选地,在所述业务任务调度执行步骤中,任务调度执行后,任务状态为“取消”、“错误”、“失败”、“超时”的状态下,通过运维人员强制任务成功,能够使得任务状态为“强制成功”。
[0014]优选地,在所述业务任务调度执行步骤中,任务调度执行后,在任务状态为“取消”、“错误”、“失败”、“超时”的状态下,通过运维人员重做任务或运维人员强制执行任务,能够重新创建新任务调度日志。
[0015]根据本发明,相对于以往的业务任务调度方案而言具有以下显著优点:能够支持业务任务调度计划的动态调整;能够支持不同应用系统之间的业务任务存在关联;能够降低业务系统间的耦合性;能够提高业务系统任务调度的扩展性。
[0016]
【附图说明】
[0017]图1是表调度系统和业务系统的关系的意图。
[0018]图2是表示本发明的调度系统的构造示意图。
[0019]图3是表示本发明的任务调度方法中运维人员通过修改任务调度日志状态对任务调度进行动态调整的过程。
[0020]_
【具体实施方式】
[0021]下面介绍的是本发明的多个实施例中的一些,旨在提供对本发明的基本了解。并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。
[0022]图1是表示调度系统和业务系统的关系的示意图。本发明的技术思想是,将业务任务调度的逻辑从业务系统1、业务系统2、业务系统3 (这里作为示例仅列举了 3个业务系统,而实际上对业务系统的数量不作限定)中剥离出来,由调度系统100进行统一管理。
[0023]业务系统1、业务系统2、业务系统3负责业务任务的具体执行,并提供服务供调度系统进行调用。调度系统100负责按照规则调用业务系统1、业务系统2、业务系统3提供的服务进行业务任务调度。通过在调度系统100中维护业务任务之间的关联关系,从而消除了业务系统1、业务系统2、业务系统3之间因为任务调度产生的耦合性。
[0024]在本发明中,调度系统100如下所述主要包括5个数据模型:业务系统,业务任务,业务任务关联,业务任务调度计划,和业务任务调度日志。
[0025](1)业务系统数据模型
需要使用调度系统进行调度的业务系统。关键字段有系统ID、业务系统接口服务地址。调度系统通过业务系统接口的服务地址向业务系统发送调用请求。
[0026](2)业务任务数据模型
需要调度的业务任务。关键字段有业务任务ID、系统ID。业务任务ID可以唯一标识业务任务。
[0027]( 3 )业务任务关联数据模型
定义业务任务之间的关联关系,如依赖,互斥,成功后立即执行,异常后立即执行等。关键字段有业务任务ID、关联业务任务ID、关联类型。
[0028](4)业务任务调度计划数据模型
定义业务任务的周期调度计划。可以为同一业务任务定义多条调度计划,业务任务调度计划可以被删除和修改。
[0029]1关键字段
η系统ID:用于标识系统的ID。
[0030]η业务任务ID:用于标识业务任务的ID。
[0031]η计划执行时间:计划执行的具体时间,例如21:00:00。
[0032]η计划执行间隔:计划执行的间隔,例如每几小时,每几天每几周,每几季度等。
[0033]η强制执行时间:业务任务在强制执行时间由于所依赖的业务任务还没有执行,则忽略依赖业务任务的状态,直接执行业务任务。
[0034]( 5 )任务调度日志数据模型
用于记录业务任务调度的日志信息。调度系统根据业务任务调度计划动态规划一段时间内的调度业务任务并将信息记录在业务任务调度日志中。调度系统根据业务任务调度日志中的记录,进行业务任务调度并记录任务调度的结果。
[0035]1关键字段:
η业务任务日志ID:用于标识业务日志的ID。
[0036]η业务任务ID:用于标识业务任务的ID。
η原计划执行时间:原计划中业务任务的执行时间。
[0037]η计划执行时间:默认为原计划执行时间,实际调度时间。
[0038]η请求时间:调度系统向业务系统发送请求的时间。
[0039]η业务任务开始时间:业务系统开始执行业务任务时间。
[0040]η业务任务完成时间:业务系统完成执行业务任务时间。
[0041]η业务任务状态:业务任务执行状态信息(如后述图3所示包括未执行,已计划、准备中、进行中、完成、失败、取消)
η业务任务响应信息:业务系统返回的其他说明信息。
[0042]图2是表示本发明的调度系统的构造示意图。如图2所示,本发明的任务调度系统100用于在多个业务系统(例如图1所示的业务系统1、业务系统2、业务系统3)之间进行业务任务调度。
[0043]本发明的任务调度系统100具备:用于对业务系统、业务任务、业务任务关联进行管理的业务任务管理模块101 ;用于对业务任务调度计划进行管理并且在业务任务调度计划改变时触发下述的业务任务调度规划模块重新进行规划的业务任务调度计划管理模块102 ;用于根据业务任务调度计划规划规定时间内的任务调度并且在业务任务调度计划改变时重新进行规划的业务任务调度规划模块103 ;用于周期性实例化任务的业务任务调度执行模块104。
[0044]具体地,业务任务管理模块104负责调度系统中业务系统、业务任务、业务任务关联的管理。也就是对需要使用调度系统进行调度的业务系统、需要调度的业务任务以及业务任务之间的关联关系进行管理(即对上述的数据模型(1)?(3)进行管理)。
[0045]业务任务调度计划管理模块102负责调度系统中业务任务调度计划的管理,当业务任务调度计划改变时,触发业务任务调度规划模块重新进行规划。业务任务调度计划管理模块102负责产生和管理上述的5个数据模型中“业务任务调度计划”数据模块对应的数据。
[0046]业务任务调度规划模块103负责根据业务任务调度计划规划一段时间内的业务任务调度并将信息记录在业务任务调度日志中,并且在业务任务调度计划改变时,重新进行规划。例如,业务任务调度每23小时运行一次,每次创建预计在“24小时”内将执行的业务任务调度日志信息。而当业务任务调度计划改变时,立即创建预计在“24小时”内将执行的业务任务调度日志信息。通过业务任务、原计划执行时间、以及任务状态来区分业务任务调度日志是否已经创建。业务任务调度规划模块103负责产生和管理上述的5个数据模型中的“业务任务调度日志”数据模块对应的数据。
[0047]业务任务调度执行模块104以很短的周