CN101963921A - 一种作业调度方法和系统 - Google Patents
一种作业调度方法和系统 Download PDFInfo
- Publication number
- CN101963921A CN101963921A CN 201010290701 CN201010290701A CN101963921A CN 101963921 A CN101963921 A CN 101963921A CN 201010290701 CN201010290701 CN 201010290701 CN 201010290701 A CN201010290701 A CN 201010290701A CN 101963921 A CN101963921 A CN 101963921A
- Authority
- CN
- China
- Prior art keywords
- father
- operations
- job scheduling
- successful execution
- described operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种作业调度方法,所述作业调度方法包括:判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;当所述作业的所有父作业均成功执行时,则触发执行所述作业。本发明实施例还公开了一种作业调度系统。采用本发明,能够更加贴合实际需要的对作业执行进行灵活的安排和调度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种作业调度方法和系统。
背景技术
现有的作业调度系统大多基于开源组件quartz构建,Quartz中的触发器中,最常用的是SimpleTrigger(简单触发器)和CronTrigger(时钟触发器),本质上都是基于时间的触发,虽然用它们也可以实现较为复杂的作业调度,但是缺少一样项目中经常使用到的关键特性,即作业调度除了要满足时间条件外还存在一种作业依赖关系,例如B作业的执行需要以A作业的成功执行为条件,现有的作业调度系统仅能分别设定A和B的执行开始时间,但当A的执行过程超过预想值,在B的执行开始时间到达时A还没有执行完成,则会导致B的执行时数据不完整甚至发生错误。为了避免此类现象发生,使用现有的作业调度系统只有将B的执行开始时间设定得尽量晚,给A的执行尽可能预留更多的时间,这只能尽量减少遇到这种问题的机率,但是无法根除。
发明内容
本发明实施例所要解决的技术问题在于,提供一种作业调度方法和系统,可根据作业之间的依赖关系来触发执行作业。
为了解决上述技术问题,本发明实施例提供了一种作业调度方法,所述作业调度方法包括:
判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;
当所述作业的所有父作业均成功执行时,则触发执行所述作业。
其中,所述作业调度方法还包括:
通过一张有向无环图设定作业的依赖关系。
其中,判断作业在预设的作业依赖关系中的所有父作业是否均成功执行包括:
检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;
判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。
其中,所述作业调度方法还包括:
判断是否到达所述作业的定时触发时间;
当到达所述作业的定时触发时间,并且所述作业的所有父作业均成功执行,则触发执行所述作业。
其中,所述判断是否到达所述作业的定时触发时间,当判断结果为已到达所述作业的定时触发时间后,每隔一定时间间隔进行判断作业在预设作业依赖关系中所有父作业的是否均成功执行;
当所述作业的所有父作业均成功执行时,则触发执行所述作业。
相应地,本发明实施例还提供了一种作业调度系统,所述作业调度系统包括:
作业流程资源库,用于保存作业流程中各个作业之间相互的依赖关系;
作业触发引擎,用于判断作业在预设作业依赖关系中的所有父作业是否均成功执行,当所述作业的所有父作业均成功执行时,则触发执行所述作业;
作业执行插件,用于执行所述作业。
其中,所述作业调度系统还包括:
流程设计单元,用于通过一张有向无环图设定作业的依赖关系。
其中,所述作业触发引擎判断所述作业的所有父作业是否均成功执行包括:
检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;
判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。
其中,所述作业触发引擎包括:
父作业检测模块,用于判断作业在预设作业依赖关系中所有父作业的是否均成功执行;
定时模块,用于判断是否到达所述作业的定时触发时间;
触发模块,用于当所述父作业检测模块和定时模块均得到肯定的判断结果时,触发执行所述作业。
其中,所述父作业检测模块用于当所述定时模块判断得到已到达所述作业的定时触发时间后,每隔一定时间间隔进行判断作业在预设作业依赖关系中所有父作业的是否均成功执行;
所述触发模块用于当所述父作业检测模块判断得到所述作业的所有父作业均成功执行时,则触发执行所述作业。
实施本发明实施例,具有如下有益效果:通过在现有的作业调度系统中加入了根据流程作业之间的依赖关系的触发机制,能够更加贴合实际需要的对作业执行进行灵活的安排和调度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种作业调度系统的结构组成示意图;
图2为本发明实施例中的作业调度系统中作业触发引擎的结构组成示意图;
图3为本发明实施例中一种作业流程的有向无环图;
图4为本发明一种作业调度方法的第一实施例的流程示意图;
图5为本发明一种作业调度方法的第二实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图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点到达时触发执行周报表作业。
本发明实施例通过在现有的作业调度系统中加入了根据流程作业之间的依赖关系的触发机制,能够更加贴合实际需要的对作业执行进行灵活的安排和调度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种作业调度方法,其特征在于,所述作业调度方法包括:
判断作业在预设的作业依赖关系中的所有父作业是否均成功执行;
当所述作业的所有父作业均成功执行时,则触发执行所述作业。
2.如权利要求1所述的作业调度方法,其特征在于,所述作业调度方法还包括:
通过一张有向无环图设定作业的依赖关系。
3.如权利要求1所述的作业调度方法,其特征在于,所述判断作业在预设的作业依赖关系中的所有父作业是否均成功执行包括:
检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;
判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。
4.如权利要求1所述的作业调度方法,其特征在于,所述作业调度方法还包括:
判断是否到达所述作业的定时触发时间;
当到达所述作业的定时触发时间,并且所述作业的所有父作业均成功执行,则触发执行所述作业。
5.如权利要求4所述的作业调度方法,其特征在于,所述判断是否到达所述作业的定时触发时间,当判断结果为已到达所述作业的定时触发时间后,每隔一定时间间隔进行判断所述作业在预设作业依赖关系中的所有父作业是否均成功执行;
当所述作业的所有父作业均成功执行时,则触发执行所述作业。
6.一种作业调度系统,其特征在于,所述作业调度系统包括:
作业流程资源库,用于保存作业流程中各个作业之间相互的依赖关系;
作业触发引擎,用于判断作业在预设作业依赖关系中的所有父作业是否均成功执行,当所述作业的所有父作业均成功执行时,则触发执行所述作业;
作业执行插件,用于执行所述作业。
7.如权利要求6所述的作业调度系统,其特征在于,所述作业调度系统还包括:
流程设计单元,用于通过一张有向无环图设定作业的依赖关系。
8.如权利要求6所述的作业调度系统,其特征在于,所述作业触发引擎判断所述作业的所有父作业是否均成功执行包括:
检测所述父作业的执行进度,所述执行进度包括最后一次执行成功的时间值;
判断所述作业的所有父作业的执行成功的时间值是否满足预设条件。
9.如权利要求6所述的作业调度系统,其特征在于,所述作业触发引擎包括:
父作业检测模块,用于判断作业在预设作业依赖关系中的所有父作业是否均成功执行;
定时模块,用于判断是否到达所述作业的定时触发时间;
触发模块,用于当所述父作业检测模块和定时模块均得到肯定的判断结果时,触发执行所述作业。
10.如权利要求9所述的作业调度系统,其特征在于,所述父作业检测模块用于当所述定时模块判断得到已到达所述作业的定时触发时间后,每隔一定时间间隔进行判断作业在预设作业依赖关系中所有父作业的是否均成功执行;
所述触发模块用于当所述父作业检测模块判断得到所述作业的所有父作业均成功执行时,则触发执行所述作业。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010290701 CN101963921A (zh) | 2010-09-21 | 2010-09-21 | 一种作业调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010290701 CN101963921A (zh) | 2010-09-21 | 2010-09-21 | 一种作业调度方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101963921A true CN101963921A (zh) | 2011-02-02 |
Family
ID=43516800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010290701 Pending CN101963921A (zh) | 2010-09-21 | 2010-09-21 | 一种作业调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101963921A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331323A (zh) * | 2014-10-31 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种日报作业的调度方法及系统 |
CN104765641A (zh) * | 2014-01-02 | 2015-07-08 | 中国移动通信集团安徽有限公司 | 一种作业调度方法及系统 |
CN104951908A (zh) * | 2015-07-28 | 2015-09-30 | 车智互联(北京)科技有限公司 | 一种事件触发调度系统和方法 |
CN104965754A (zh) * | 2015-03-31 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 任务调度方法及任务调度装置 |
CN105354083A (zh) * | 2015-09-30 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN105630588A (zh) * | 2014-11-06 | 2016-06-01 | 卓望数码技术(深圳)有限公司 | 一种分布式作业调度方法和系统 |
CN106095540A (zh) * | 2016-05-31 | 2016-11-09 | 上海萌果信息科技有限公司 | 一种基于Quartz框架的任务流程处理方法 |
CN103491024B (zh) * | 2013-09-27 | 2017-01-11 | 中国科学院信息工程研究所 | 一种面向流式数据的作业调度方法及装置 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN108920206A (zh) * | 2018-06-13 | 2018-11-30 | 北京交通大学 | 一种插件调度方法及装置 |
CN112346842A (zh) * | 2020-11-19 | 2021-02-09 | 广州嘉为科技有限公司 | 一种基于有向无环图的工作流任务调度方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787000A (zh) * | 2005-11-15 | 2006-06-14 | 中国工商银行股份有限公司 | 批量作业集中管理和调度的系统及方法 |
CN1858790A (zh) * | 2005-05-03 | 2006-11-08 | 国际商业机器公司 | 用于管理自动化资源提供管理系统的方法和系统 |
-
2010
- 2010-09-21 CN CN 201010290701 patent/CN101963921A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858790A (zh) * | 2005-05-03 | 2006-11-08 | 国际商业机器公司 | 用于管理自动化资源提供管理系统的方法和系统 |
CN1787000A (zh) * | 2005-11-15 | 2006-06-14 | 中国工商银行股份有限公司 | 批量作业集中管理和调度的系统及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491024B (zh) * | 2013-09-27 | 2017-01-11 | 中国科学院信息工程研究所 | 一种面向流式数据的作业调度方法及装置 |
CN104765641A (zh) * | 2014-01-02 | 2015-07-08 | 中国移动通信集团安徽有限公司 | 一种作业调度方法及系统 |
CN104765641B (zh) * | 2014-01-02 | 2019-04-12 | 中国移动通信集团安徽有限公司 | 一种作业调度方法及系统 |
CN104331323A (zh) * | 2014-10-31 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种日报作业的调度方法及系统 |
CN105630588B (zh) * | 2014-11-06 | 2019-03-01 | 卓望数码技术(深圳)有限公司 | 一种分布式作业调度方法和系统 |
CN105630588A (zh) * | 2014-11-06 | 2016-06-01 | 卓望数码技术(深圳)有限公司 | 一种分布式作业调度方法和系统 |
CN104965754A (zh) * | 2015-03-31 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 任务调度方法及任务调度装置 |
CN104951908A (zh) * | 2015-07-28 | 2015-09-30 | 车智互联(北京)科技有限公司 | 一种事件触发调度系统和方法 |
CN105354083A (zh) * | 2015-09-30 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN105354083B (zh) * | 2015-09-30 | 2018-12-04 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN106095540A (zh) * | 2016-05-31 | 2016-11-09 | 上海萌果信息科技有限公司 | 一种基于Quartz框架的任务流程处理方法 |
CN106095540B (zh) * | 2016-05-31 | 2020-01-03 | 上海萌果信息科技有限公司 | 一种基于Quartz框架的任务流程处理方法 |
CN108037991A (zh) * | 2017-12-26 | 2018-05-15 | 中山大学 | 一种支持作业依赖关系的定时作业调度方法及系统 |
CN108920206A (zh) * | 2018-06-13 | 2018-11-30 | 北京交通大学 | 一种插件调度方法及装置 |
CN112346842A (zh) * | 2020-11-19 | 2021-02-09 | 广州嘉为科技有限公司 | 一种基于有向无环图的工作流任务调度方法 |
CN112346842B (zh) * | 2020-11-19 | 2024-03-26 | 广州嘉为科技有限公司 | 一种基于有向无环图的工作流任务调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101963921A (zh) | 一种作业调度方法和系统 | |
US6961896B1 (en) | Method and system for setting document-linked timed reminders | |
CN1755618B (zh) | 改进的电子任务标记和管理方法和系统 | |
EP0893761B1 (fr) | Dispositif et procédé de régulation dynamique de l'attribution des ressources sur un système informatique | |
US20070261030A1 (en) | Method and system for tracking and prioritizing applications | |
US8571790B2 (en) | Method for switching reference map data in navigation device, computer readable medium for the same, and navigation device | |
US20120185762A1 (en) | Saveless Documents | |
CN110879750A (zh) | 资源管理的方法及终端设备 | |
CN101142556A (zh) | 操作系统运行菜单程序清单 | |
CN101211369A (zh) | 内容显示方法、装置以及记录内容显示程序的记录介质 | |
CN107786421A (zh) | 多信息源的任务提醒方法及装置 | |
CN100592262C (zh) | 保留桌面管理界面动态信息的系统及方法 | |
CN104731593A (zh) | 一种信息处理方法及电子设备 | |
CN110362450A (zh) | 一种日志数据采集方法、装置及计算机可读存储介质 | |
CN103885376A (zh) | 可编程逻辑控制器及其事件驱动编程方法 | |
CN102932200A (zh) | 一种信息流节点处理时限的监控方法及装置 | |
US10489196B1 (en) | Job scheduler for remote maintenance of servers and workstations | |
CN107613090A (zh) | 一种提醒事项的记录方法、移动终端以及存储设备 | |
CN104375749A (zh) | 一种提醒事项展现方法及装置 | |
CN106293406A (zh) | 一种日程信息添加方法及终端设备 | |
CN110083414A (zh) | 一种时间选择方法及设备、存储介质 | |
EP3679468A1 (en) | Controller event queues | |
CN111857475B (zh) | 图标显示方法、装置和电子设备 | |
US20130185727A1 (en) | Method for managing tasks in a microprocessor or in a microprocessor assembly | |
CN105898037A (zh) | 一种应用的推送方法和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110202 |