一种作业调度方法和系统的制作方法

文档序号:6332610阅读:133来源:国知局
专利名称:一种作业调度方法和系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种作业调度方法和系统。
背景技术
现有的作业调度系统大多基于开源组件quartz构建,Quartz中的触发器中,最常 用的是SimpleTrigger (简单触发器)和CronTrigger (时钟触发器),本质上都是基于时间 的触发,虽然用它们也可以实现较为复杂的作业调度,但是缺少一样项目中经常使用到的 关键特性,即作业调度除了要满足时间条件外还存在一种作业依赖关系,例如B作业的执 行需要以A作业的成功执行为条件,现有的作业调度系统仅能分别设定A和B的执行开始 时间,但当A的执行过程超过预想值,在B的执行开始时间到达时A还没有执行完成,则会 导致B的执行时数据不完整甚至发生错误。为了避免此类现象发生,使用现有的作业调度 系统只有将B的执行开始时间设定得尽量晚,给A的执行尽可能预留更多的时间,这只能尽 量减少遇到这种问题的机率,但是无法根除。

发明内容
本发明实施例所要解决的技术问题在于,提供一种作业调度方法和系统,可根据 作业之间的依赖关系来触发执行作业。为了解决上述技术问题,本发明实施例提供了一种作业调度方法,所述作业调度 方法包括判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;当所述作业的所有父作业均成功执行时,则触发执行所述作业。其中,所述作业调度方法还包括通过一张有向无环图设定作业的依赖关系。其中,判断作业在预设的作业依赖关系中的所有父作业是否均成功执行包括检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。其中,所述作业调度方法还包括判断是否到达所述作业的定时触发时间;当到达所述作业的定时触发时间,并且所述作业的所有父作业均成功执行,则触 发执行所述作业。其中,所述判断是否到达所述作业的定时触发时间,当判断结果为已到达所述作 业的定时触发时间后,每隔一定时间间隔进行判断作业在预设作业依赖关系中所有父作业 的是否均成功执行;当所述作业的所有父作业均成功执行时,则触发执行所述作业。相应地,本发明实施例还提供了一种作业调度系统,所述作业调度系统包括作业流程资源库,用于保存作业流程中各个作业之间相互的依赖关系;
作业触发引擎,用于判断作业在预设作业依赖关系中的所有父作业是否均成功执 行,当所述作业的所有父作业均成功执行时,则触发执行所述作业;作业执行插件,用于执行所述作业。其中,所述作业调度系统还包括流程设计单元,用于通过一张有向无环图设定作业的依赖关系。其中,所述作业触发引擎判断所述作业的所有父作业是否均成功执行包括检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。其中,所述作业触发引擎包括父作业检测模块,用于判断作业在预设作业依赖关系中所有父作业的是否均成功 执行;定时模块,用于判断是否到达所述作业的定时触发时间;触发模块,用于当所述父作业检测模块和定时模块均得到肯定的判断结果时,触 发执行所述作业。其中,所述父作业检测模块用于当所述定时模块判断得到已到达所述作业的定时 触发时间后,每隔一定时间间隔进行判断作业在预设作业依赖关系中所有父作业的是否均 成功执行;所述触发模块用于当所述父作业检测模块判断得到所述作业的所有父作业均成 功执行时,则触发执行所述作业。实施本发明实施例,具有如下有益效果通过在现有的作业调度系统中加入了根 据流程作业之间的依赖关系的触发机制,能够更加贴合实际需要的对作业执行进行灵活的 安排和调度。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例中一种作业调度系统的结构组成示意图;图2为本发明实施例中的作业调度系统中作业触发引擎的结构组成示意图;图3为本发明实施例中一种作业流程的有向无环图;图4为本发明一种作业调度方法的第一实施例的流程示意图;图5为本发明一种作业调度方法的第二实施例的流程示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
4
图1为本发明实施例中一种作业调度系统的结构组成示意图,如图所示该作业调 度系统至少包括作业流程资源库10、作业触发引擎20以及作业执行插件30,其中作业流程资源库10,用于保存作业流程中各个作业之间相互的依赖关系;具体 地,对应于每个作业流程均可以有一个XML文件类描述存储在数据库中,内容可以包括一 张有向无环图,用于描述作业流程中的各个作业之间相互的依赖关系。作业触发引擎20,用于判断作业在作业流程资源库中的作业依赖关系中的所有父 作业是否均成功执行,当所述作业的所有父作业均成功执行时,则触发执行所述作业;具体 地,参考图3中的一个作业流程的有向无环图,当01日报表作业和02日报表作业均成功执 行时,作业触发引擎得到肯定的判断结果,即触发执行周报表作业。进一步地,所述作业触 发引擎还可以结合现有的基于时间的触发机制判断所述作业是否可以执行,例如如图2所 示的作业触发引擎的结构组成示意图,包括父作业检测模块201,用于判断作业在预设作业依赖关系中的所有父作业是否均 成功执行;判断所述作业的所有父作业是否均成功执行可以包括检测所述父作业的执行 进度,所述执行进度包括最后一次执行成功的时间值;判断所述作业的所有父作业的执行 成功的时间值是否满足预设条件。例如图3中的周报表作业执行的预设条件为01日报表 作业和02日报表作业的执行成功的时间值为该周的最后一天(可以为周五、周六或周日), 父作业检测模块201检测01日报表作业以及02日报表作业的执行成功的时间值,并判断 该时间值是否本周的最后一天,从而得出周报表作业的所有父作业是否均成功执行的判断 结果。定时模块202,用于判断是否到达所述作业的定时触发时间;触发模块203,用于当所述父作业检测模块201和定时模块202均得到肯定的判断 结果时,触发执行所述作业。所述父作业检测模块201和定时模块202可以各自独立进行检 测,也可以首先由其中的一个模块进行判断待得到肯定的判断结果后触发另一模块以一定 时间间隔地进行检测判断,例如待定时模块202得到已到达所述作业的定时触发时间的判 断结果后,触发所述父作业检测模块201对该作业的所有父作业的执行进度进行检测,判 断是否其所有的父作业都已成功执行,若是则通知触发模块203对该作业进行触发执行, 若否则所述父作业检测模块201可以对未成功执行的父作业进行每间隔1分钟检测一次。作业执行插件30,用于执行所述作业。具体地,所述作业执行插件30可以被所 述作业触发引擎的触发下执行作业流程中的各种作业。所述作业调度系统的可以采用 Adapter (适配器)设计模式构建插件层,它使用ITask接口封装了插件的公共接口,每个集 成于作业调度系统的插件都必须提供ITask的实现类。每个ITask的实现类封装了一项功 能,对应一种作业操作。进一步地,所述作业调度系统还可以包括流程设计单元,用于通过一张有向无环 图设定作业的依赖关系。为了方便作业应用开发,作业调度系统可以提供一个集成开发环 境,用户仅需要以一种图形化的形式,选择代表作业模板的图标,并用线将图标连接起来组 成一个有向无环图(如图3所示),就完成了输入作业流程描述的过程,而由该开发工具产 生相应的作业流程描述文件或直接存入元数据库图4为本发明一种作业调度方法的第一实施例的流程示意图,如图所示该实施例 的流程包括
步骤S401,判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;具 体实现中,用户可以在作业调度系统中的数据库中对应每一个作业流程设计并保存一个 XML文件类描述,该文件可以包括一个有向无环图,用于描述作业流程中的各个作业之间相 互的依赖关系,例如图3所示的周报表作业,必须在每周的最后一天的01日报表作业和02 日报表作业均完成后,才能够执行。判断所述作业的所有父作业是否均成功执行可以包括 检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;判断所述作 业的所有父作业的执行成功的时间值是否满足预设条件。例如图3中的周报表作业执行的 预设条件为01日报表作业和02日报表作业的执行成功的时间值为该周的最后一天(可以 为周五、周六或周日),作业调度系统通过检测01日报表作业以及02日报表作业的执行成 功的时间值,并判断该时间值是否本周的最后一天,从而得出周报表作业的所有父作业是 否均成功执行的判断结果。步骤S402,当所述作业的所有父作业均成功执行时,则触发执行所述作业。例如 图3所示的周报表作业,在得知在本周最后一天的01日报表作业和02日报表作业成功执 行后,即触发作业调度系统下的业务插件执行周报表作业。图5为本发明一种作业调度方法的第二实施例的流程示意图。如图所示该实施例 流程包括步骤S501,判断是否到达作业的定时触发时间。具体地,例如图3所示的作业流 程的有向无环图中,01日报表作业和02日报表作业的预设的定时触发时间均为每天的早 上4点,而周报表作业预设的定时触发时间为每周一的早上6点,由于01日报表作业和02 日报表作业在有向无环图显示的依赖关系中并没有上级父作业,于是每日当到达早上4点 时,01日报表作业和02日报表作业即触发执行;而在有向无环图中显示01日报表作业和 02日报表作业均为周报表作业的父作业,因此当到达每周一的早上6点时,不会直接触发 执行周报表作业,而是进行步骤S502 ;步骤S502,判断作业在预设的作业依赖关系中的所有父作业是否均成功执行,该 步骤与上一实施例中的步骤S401相同,于此不再赘述。步骤S503,当所述作业的所有父作业均成功执行时,则触发执行所述作业。具体 地,由于步骤S502是以步骤S501中得到了肯定的判断结果为前提,因此当步骤S502得到 了肯定的判断结果时,即表示该作业满足了到达了定时触发时间以及所有父作业均已成功 执行上述两个触发条件的叠加,以图3为例即时间已到达周一的早上6点,当天的01日报 表作业和02日报表作业也已经成功执行,此时就可以触发作业调度系统下的业务插件执 行该周报表作业。在别的可选实施例中,亦可以首先判断作业的所有父作业是否均成功执行,当得 到肯定的判断结果后,再判断是否到达预设的定时触发时间,例如图3中的01日报表作业 和02日报表作业均在周一早上6点之前完成,作业调度系统可以首先得到这一判断结果后 再判断是否到达周报表作业的定时触发时间,若已超过则立即触发执行周报表作业,若还 未到达早上6点则进行等待,待6点到达时触发执行周报表作业。本发明实施例通过在现有的作业调度系统中加入了根据流程作业之间的依赖关 系的触发机制,能够更加贴合实际需要的对作业执行进行灵活的安排和调度。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以
6通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。 以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权 利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
一种作业调度方法,其特征在于,所述作业调度方法包括判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;当所述作业的所有父作业均成功执行时,则触发执行所述作业。
2.如权利要求1所述的作业调度方法,其特征在于,所述作业调度方法还包括 通过一张有向无环图设定作业的依赖关系。
3.如权利要求1所述的作业调度方法,其特征在于,所述判断作业在预设的作业依赖 关系中的所有父作业是否均成功执行包括检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值; 判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。
4.如权利要求1所述的作业调度方法,其特征在于,所述作业调度方法还包括 判断是否到达所述作业的定时触发时间;当到达所述作业的定时触发时间,并且所述作业的所有父作业均成功执行,则触发执 行所述作业。
5.如权利要求4所述的作业调度方法,其特征在于,所述判断是否到达所述作业的定 时触发时间,当判断结果为已到达所述作业的定时触发时间后,每隔一定时间间隔进行判 断所述作业在预设作业依赖关系中的所有父作业是否均成功执行;当所述作业的所有父作业均成功执行时,则触发执行所述作业。
6.一种作业调度系统,其特征在于,所述作业调度系统包括 作业流程资源库,用于保存作业流程中各个作业之间相互的依赖关系;作业触发引擎,用于判断作业在预设作业依赖关系中的所有父作业是否均成功执行, 当所述作业的所有父作业均成功执行时,则触发执行所述作业; 作业执行插件,用于执行所述作业。
7.如权利要求6所述的作业调度系统,其特征在于,所述作业调度系统还包括 流程设计单元,用于通过一张有向无环图设定作业的依赖关系。
8.如权利要求6所述的作业调度系统,其特征在于,所述作业触发引擎判断所述作业 的所有父作业是否均成功执行包括检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值; 判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。
9.如权利要求6所述的作业调度系统,其特征在于,所述作业触发引擎包括 父作业检测模块,用于判断作业在预设作业依赖关系中的所有父作业是否均成功执行;定时模块,用于判断是否到达所述作业的定时触发时间;触发模块,用于当所述父作业检测模块和定时模块均得到肯定的判断结果时,触发执 行所述作业。
10.如权利要求9所述的作业调度系统,其特征在于,所述父作业检测模块用于当所述 定时模块判断得到已到达所述作业的定时触发时间后,每隔一定时间间隔进行判断作业在 预设作业依赖关系中所有父作业的是否均成功执行;所述触发模块用于当所述父作业检测模块判断得到所述作业的所有父作业均成功执 行时,则触发执行所述作业。
全文摘要
本发明实施例公开了一种作业调度方法,所述作业调度方法包括判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;当所述作业的所有父作业均成功执行时,则触发执行所述作业。本发明实施例还公开了一种作业调度系统。采用本发明,能够更加贴合实际需要的对作业执行进行灵活的安排和调度。
文档编号G06F9/46GK101963921SQ20101029070
公开日2011年2月2日 申请日期2010年9月21日 优先权日2010年9月21日
发明者宫建涛, 王一峰, 胡仲华 申请人:卓望数码技术(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1