首页> 中国专利> 一种可动态调整的任务调度系统和调度方法

一种可动态调整的任务调度系统和调度方法

摘要

本发明涉及一种任务调度系统,它用于在多个业务系统之间进行业务任务调度。该调度系统具备:业务任务管理模块,用于对业务系统数据模型、业务任务数据模型、业务任务关联数据模型进行管理;业务任务调度计划管理模块,用于对业务任务调度计划数据模型进行管理,并且在业务任务调度计划改变时触发下述的业务任务调度规划模块重新进行规划;业务任务调度规划模块,用于根据业务任务调度计划规划规定时间内的任务调度,并且在业务任务调度计划改变时重新进行规划;以及业务任务调度执行模块,用于周期性实例化业务任务调度。根据本发明,能够提供一种可动态调整的业务任务调度系统以及调度方法。

著录项

  • 公开/公告号CN105260248A

    专利类型发明专利

  • 公开/公告日2016-01-20

    原文格式PDF

  • 申请/专利权人 中国银联股份有限公司;

    申请/专利号CN201410334495.1

  • 发明设计人 胡长春;

    申请日2014-07-15

  • 分类号G06F9/50;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人臧霁晨

  • 地址 200135 上海市浦东新区含笑路36号银联大厦

  • 入库时间 2023-12-18 13:47:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-19

    授权

    授权

  • 2016-02-17

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20140715

    实质审查的生效

  • 2016-01-20

    公开

    公开

说明书

技术领域

本发明涉及计算机应用领域,具体涉及一种任务调度系统以及任务调度方法。

背景技术

传统计算机应用业务系统的业务任务自动调度是在应用设计阶段预定义业务任务执行的时间规则,在实现时通过定时调度组件按照预定义的时间规则进行调度。采用这种方式的应用系统有如下缺点:

业务系统部署后,业务任务调度计划不能动态调整;

多个业务系统之间的业务任务存在依赖时,不同业务系统之间需要进行交互获取相关信息,增加了业务系统间的耦合性;

每个业务系统都有各自的业务任务调度逻辑以及业务任务调度日志信息,很难提供统一的业务任务调度管理;

业务系统同时包含调度逻辑和应用业务逻辑,耦合性强,扩展性差。

发明内容

鉴于上述问题,本发明旨在提供一种能够支持业务任务调度计划的动态调整的任务调度系统以及任务调度方法。

进一步,本发明旨在提供一种能够支持不同应用系统之间的业务任务存在关联并且能够降低业务系统间的耦合性并能够提高业务系统任务调度的扩展性的任务调度系统以及任务调度方法。

本发明的任务调度系统,用于在多个业务系统之间进行业务任务调度,其特征在于,具备:

业务任务管理模块,用于对业务系统数据模型、业务任务数据模型、业务任务关联数据模型进行管理;

业务任务调度计划管理模块,用于对业务任务调度计划数据模型进行管理,并且在业务任务调度计划改变时触发下述的业务任务调度规划模块重新进行规划;以及

业务任务调度规划模块,用于根据业务任务调度计划规划规定时间内的任务调度,并且在业务任务调度计划改变时重新进行规划;

业务任务调度执行模块,用于周期性实例化业务任务调度。

优选地,所述业务任务规划模块用于产生和管理与业务任务调度日志数据模型对应的数据。

优选地,所述业务任务调度执行模块用于执行与业务任务调度日志数据模型对应的任务并且用于更新业务任务调度日志的状态。

优选地,所述业务任务调度规划模块用于根据业务任务调度计划规划在规定时间内的任务调度并且将规划后的信息记录在业务任务调度日志中并且在业务任务调度计划改变时重新进行规划。

优选地,所述业务任务管理模块、所述业务任务调度计划管理模块、所述业务任务调度规划模块、所述业务任务调度执行模块相互之间通过更新数据模型中的数据进行通信。

本发明的任务调度方法,其特征在于,包括下述步骤:

业务任务调度计划步骤,对业务任务调度创建业务任务调度计划;

业务任务调度规划步骤,根据业务任务调度计划规划规定时间内的业务任务调度,并且在业务任务调度计划改变时重新进行规划;

业务任务调度执行步骤,周期性实例化业务任务调度。

优选地,在所述业务任务调度执行步骤中,在还未周期性实例化业务任务的情况下,在创建新任务调度日志后,任务状态为“未执行”时,运维人员能够调整任务计划执行时间。

优选地,在所述业务任务调度执行步骤中,任务调度执行后,任务状态为“取消”、“错误”、“失败”、“超时”的状态下,通过运维人员强制任务成功,能够使得任务状态为“强制成功”。

优选地,在所述业务任务调度执行步骤中,任务调度执行后,在任务状态为“取消”、“错误”、“失败”、“超时”的状态下,通过运维人员重做任务或运维人员强制执行任务,能够重新创建新任务调度日志。

根据本发明,相对于以往的业务任务调度方案而言具有以下显著优点:能够支持业务任务调度计划的动态调整;能够支持不同应用系统之间的业务任务存在关联;能够降低业务系统间的耦合性;能够提高业务系统任务调度的扩展性。

附图说明

图1是表示调度系统和业务系统的关系的示意图。

图2是表示本发明的调度系统的构造示意图。

图3是表示本发明的任务调度方法中运维人员通过修改任务调度日志状态对任务调度进行动态调整的过程。

具体实施方式

下面介绍的是本发明的多个实施例中的一些,旨在提供对本发明的基本了解。并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。

图1是表示调度系统和业务系统的关系的示意图。本发明的技术思想是,将业务任务调度的逻辑从业务系统1、业务系统2、业务系统3(这里作为示例仅列举了3个业务系统,而实际上对业务系统的数量不作限定)中剥离出来,由调度系统100进行统一管理。

业务系统1、业务系统2、业务系统3负责业务任务的具体执行,并提供服务供调度系统进行调用。调度系统100负责按照规则调用业务系统1、业务系统2、业务系统3提供的服务进行业务任务调度。通过在调度系统100中维护业务任务之间的关联关系,从而消除了业务系统1、业务系统2、业务系统3之间因为任务调度产生的耦合性。

在本发明中,调度系统100如下所述主要包括5个数据模型:业务系统,业务任务,业务任务关联,业务任务调度计划,和业务任务调度日志。

(1)业务系统数据模型

需要使用调度系统进行调度的业务系统。关键字段有系统ID、业务系统接口服务地址。调度系统通过业务系统接口的服务地址向业务系统发送调用请求。

(2)业务任务数据模型

需要调度的业务任务。关键字段有业务任务ID、系统ID。业务任务ID可以唯一标识业务任务。

(3)业务任务关联数据模型

定义业务任务之间的关联关系,如依赖,互斥,成功后立即执行,异常后立即执行等。关键字段有业务任务ID、关联业务任务ID、关联类型。

(4)业务任务调度计划数据模型

定义业务任务的周期调度计划。可以为同一业务任务定义多条调度计划,业务任务调度计划可以被删除和修改。

l关键字段

n系统ID:用于标识系统的ID。

n业务任务ID:用于标识业务任务的ID。

n计划执行时间:计划执行的具体时间,例如21:00:00。

n计划执行间隔:计划执行的间隔,例如每几小时,每几天每几周,每几季度等。

n强制执行时间:业务任务在强制执行时间由于所依赖的业务任务还没有执行,则忽略依赖业务任务的状态,直接执行业务任务。

(5)任务调度日志数据模型

用于记录业务任务调度的日志信息。调度系统根据业务任务调度计划动态规划一段时间内的调度业务任务并将信息记录在业务任务调度日志中。调度系统根据业务任务调度日志中的记录,进行业务任务调度并记录任务调度的结果。

l关键字段:

n业务任务日志ID:用于标识业务日志的ID。

n业务任务ID:用于标识业务任务的ID。

n原计划执行时间:原计划中业务任务的执行时间。

n计划执行时间:默认为原计划执行时间,实际调度时间。

n请求时间:调度系统向业务系统发送请求的时间。

n业务任务开始时间:业务系统开始执行业务任务时间。

n业务任务完成时间:业务系统完成执行业务任务时间。

n业务任务状态:业务任务执行状态信息(如后述图3所示包括未执行,已计划、准备中、进行中、完成、失败、取消)

n业务任务响应信息:业务系统返回的其他说明信息。

图2是表示本发明的调度系统的构造示意图。如图2所示,本发明的任务调度系统100用于在多个业务系统(例如图1所示的业务系统1、业务系统2、业务系统3)之间进行业务任务调度。

本发明的任务调度系统100具备:用于对业务系统、业务任务、业务任务关联进行管理的业务任务管理模块101;用于对业务任务调度计划进行管理并且在业务任务调度计划改变时触发下述的业务任务调度规划模块重新进行规划的业务任务调度计划管理模块102;用于根据业务任务调度计划规划规定时间内的任务调度并且在业务任务调度计划改变时重新进行规划的业务任务调度规划模块103;用于周期性实例化任务的业务任务调度执行模块104。

具体地,业务任务管理模块104负责调度系统中业务系统、业务任务、业务任务关联的管理。也就是对需要使用调度系统进行调度的业务系统、需要调度的业务任务以及业务任务之间的关联关系进行管理(即对上述的数据模型(1)~(3)进行管理)。

业务任务调度计划管理模块102负责调度系统中业务任务调度计划的管理,当业务任务调度计划改变时,触发业务任务调度规划模块重新进行规划。业务任务调度计划管理模块102负责产生和管理上述的5个数据模型中“业务任务调度计划”数据模块对应的数据。

业务任务调度规划模块103负责根据业务任务调度计划规划一段时间内的业务任务调度并将信息记录在业务任务调度日志中,并且在业务任务调度计划改变时,重新进行规划。例如,业务任务调度每23小时运行一次,每次创建预计在“24小时”内将执行的业务任务调度日志信息。而当业务任务调度计划改变时,立即创建预计在“24小时”内将执行的业务任务调度日志信息。通过业务任务、原计划执行时间、以及任务状态来区分业务任务调度日志是否已经创建。业务任务调度规划模块103负责产生和管理上述的5个数据模型中的“业务任务调度日志”数据模块对应的数据。

业务任务调度执行模块104以很短的周期周期性的实例化业务任务调度。例如,业务任务调度执行模块每5秒运行一次,根据业务任务调度日志信息(状态为未执行)实例化预计开始执行时间在10秒内的业务任务调度,通过单次定时调度,在计划执行时间执行业务系统的调用请求。通过业务任务状态和计划执行时间判断是否需要实例化该业务任务调度。实例化业务任务调度是指将在内存中创建任务对象并计划该任务对象运行时间。业务任务调度执行模块105负责上述的5个数据模型中“业务任务调度日志”数据模块对应任务的执行以及更新业务任务调度日志的状态。

所述业务任务管理模块101、所述业务任务调度计划管理模块102、所述业务任务调度规划模块103、所述业务任务调度执行模块104相互之间通过更新数据模型中的数据进行通信,相互之间不直接通信。

下面对于本发明的任务调度方法进行说明。本发明的任务调度方法大致可以分为三个步骤:

业务任务调度计划步骤:对业务任务调度设置业务任务调度计划;

业务任务调度规划步骤:根据业务任务调度计划规划规定时间内的业务任务调度,并且在业务任务调度计划改变时重新进行规划;以及

业务任务调度执行步骤:周期性实例化业务任务调度。

图3是表示本发明的任务调度方法中运维人员通过修改任务调度日志状态对任务调度进行动态调整的过程。

图3的运行背景为上述“业务任务调度执行步骤”即业务任务执行模块104周期性实例化物任务调度。具体地,业务任务执行模块104以很短的周期,周期性的实例化业务任务调度。

图3中主要状态包括:(任务)未执行、(任务)已计划、(任务)准备中、(任务)进行中、(任务)成功。这些都是指的数据模型中“业务任务调度日志”的状态。其中,“未执行”表示业务任务规划模块已经创建该单次任务调度日志记录。“已计划”表示业务任务调度执行模块已经实例化该任务调度日志。“准备中”表示内存中的定时调度任务开始执行。“进行中”表示业务任务进行中。“成功”表示业务系统反馈业务任务已成功执行。

图3:可以中状态主要可分为下述几个阶段:

(1)实例化之前:包括状态“未执行”;

(2)实例化之后:定时任务触发之前:包括状态“已计划”,“暂停”;

(3)定时任务已触发,尚未调用业务任务:包括状态“准备中”;

(4)业务任务已调用,尚未结束:包括状态“进行中”;

(5)业务任务达到最终状态,取消,错误,成功,失败,超时,强制成功。

具体地,如图3所示,在开始之后,创建新任务调度日志后,“未执行”表示业务任务规划模块已经创建该单次任务调度日志记录但还未执行,运维人员能够调整任务计划执行时间。

接着,在“未执行”之后,系统实例化状态为“未执行”并且“计划执行时间”在很短时间内(例如30s内)的任务。之后,任务状态变为“已计划”,在“已计划”的状态下,根据运维人员暂停任务的操作,能够转变为“暂停”状态。

另一方面,当任务状态为“未执行”的情况下,通过运维人员调整任务计划执行时间,能够回到“创建新任务调度日志”的状态。

在任务为“暂停”的状态下,运维人员通过继续执行任务能够回到“创建新任务调度日志”的状态。

在任务为“已计划”的状态下,如果系统达到“计划执行时间”,则进入任务“准备中”状态。之后,根据需要进行报警,如果执行条件满足的话,则调用业务系统执行任务,否则判断是否继续等待。

当调用业务系统执行任务的情况下,如果调用业务系统成功的话,则根据响应更新任务调度日志并且显示任务状态为“进行中”,而如果调用业务系统未成功的话,则业务任务状态显示为“错误”。

当任务状态为“进行中”则表示任务已调用但尚未结束。在任务为“进行中”的状态下,如果业务系统完成更新状态的话,则任务状态则显示为“成功”。

并且,在任务为“进行中”的状态下,如果业务系统一直没有完成更新状态的话,则任务状态变为“超时”。

并且,在任务为“进行中”的状态下,如果业务系统完成更新状态失败的话,任务状态则显示为“失败”。

另一方面,在任务状态为“已计划”的状态下,通过运维人员取消任务能够使得任务状态为“取消”。

另外,在任务状态为“取消”、“错误”、“失败”、“超时”的状态下,通过运维人员强制任务成功,能够使得任务状态为“强制成功”。或者,在任务状态为“取消”、“错误”、“失败”、“超时”的状态下,通过运维人员重做任务或运维人员强制执行任务,能够回到“创建新任务调度日志”的状态。

本发明提出了一种可动态调整的业务任务调度系统模型设计及其实现方法。所述的解决方案对于以往的业务任务调度方案而言具有以下显著优点:

在本发明中,通过业务任务调度模块103通过创建单次的“业务任务调度日志”和更改“业务任务调度日志”的状态,配合业务任务调度执行模块104的逻辑实现动态调整,由此,利用本发明能够支持业务任务调度计划的动态调整;

而且,在本发明中,通过业务任务管理模块101对业务系统、业务任务、业务任务关联数据进行创建和管理。而且,业务任务调度执行模块104在执行任务前会检查关联任务的状态(图3中“准备中”至“进行中”之间内容。因此,本发明能够支持不同应用系统之间的业务任务存在关联;

在本发明中,由于调度系统各业务任务关联关系通过调度系统的配置实现,各个业务任务之间不需要直接相关联,因此能够减少业务系统间因为调度任务而产生的关联,能够降低业务系统间的耦合性;

在本发明中,由于调度系统各业务任务关联关系通过调度中心的配置实现,各个业务任务之间不需要直接相关联。当增加新系统或者业务时,只需要增加相应配置即可,因此能够提高业务系统任务调度的扩展性。

以上例子主要说明了本发明的任务调度系统以及任务调度方法。尽管只对其中一些本发明的具体实施方式进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。因此,所展示的例子与实施方式被视为示意性的而非限制性的,在不脱离如所附各权利要求所定义的本发明精神及范围的情况下,本发明可能涵盖各种的修改与替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号