CN109375996A - 一种支持依赖关系管理的任务调度*** - Google Patents

一种支持依赖关系管理的任务调度*** Download PDF

Info

Publication number
CN109375996A
CN109375996A CN201811130647.0A CN201811130647A CN109375996A CN 109375996 A CN109375996 A CN 109375996A CN 201811130647 A CN201811130647 A CN 201811130647A CN 109375996 A CN109375996 A CN 109375996A
Authority
CN
China
Prior art keywords
task
dependence
module
scheduling system
enters
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
Application number
CN201811130647.0A
Other languages
English (en)
Inventor
张甄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Dingzhong Financial Information Consulting Service Co Ltd
Original Assignee
Anhui Dingzhong Financial Information Consulting Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui Dingzhong Financial Information Consulting Service Co Ltd filed Critical Anhui Dingzhong Financial Information Consulting Service Co Ltd
Priority to CN201811130647.0A priority Critical patent/CN109375996A/zh
Publication of CN109375996A publication Critical patent/CN109375996A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种支持依赖关系管理的任务调度***,包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块。本发明无需由任务自身以紧耦合来检查其依赖的任务的运行结果是否正常,调度程序直接基于任务状态即可判定所依赖的任务是否执行成功,降低了任务运行的资源消耗,并提高了任务调度的效率和可靠性。

Description

一种支持依赖关系管理的任务调度***
技术领域
本发明涉及任务调度管理技术领域,尤其涉及一种支持依赖关系管理的任务调度***。
背景技术
目前在计算机***中对任务的执行都是采用在某个具体的时间点上由调度服务器进行触发调度以实现对任务的调度。该时间点往往是采用时间表达式来体现的,这些时间表达式可以表示某个具体的时间点,甚至可以精确到秒级对任务进行触发调度。因此,这种触发方式可以很好的实现在特定的某个时间点对任务进行触发调度。然而,由于***的业务复杂性,许多***中的任务之间是存在紧密的相关性的。比如在一个业务目标的处理逻辑的处理逻辑非常复杂的情况下,***中可能需要多个任务协作才能完成。
现有的调度***并没有对这种任务间的依赖关系管理提供很好的支持,基本只能由具体任务逻辑的开发人员在任务启动后逐个检查其依赖的所有任务是否完成,并在依赖任务未完成时循环检查直到运行条件满足。
这样的模式会带来许多问题:
例如,检查依赖任务是否完成无固定的标准,需要按照相关任务的逻辑选定关键事件做为特征,耦合过于紧密;
任务长时间空转,增大了***处理程序崩溃和任务异常退出的复杂度;
依赖关系由各个任务分别管理,难以调整和管理等等。
此外任务长时间空转可能导致在***出现故障重新启动后,可能有大量任务一部分在运行过程中停止,一部分在空转过程中停止,此时要把***恢复到重新启动前的状态也有非常大的困难。
为解决上述问题,提出一种支持依赖关系管理的任务调度***。
发明内容
本发明的目的是为了解决现有技术中一组存在依赖关系的任务在调度过程中须由任务自身来实现紧耦合、逻辑不严格的依赖关系管理而带来各种问题的缺点,而提出的一种支持依赖关系管理的任务调度***。
为了实现上述目的,本发明采用了如下技术方案:
设计一种支持依赖关系管理的任务调度***,其特征在于:包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块;
所述任务维护模块,用于创建一组任务并明确相互之间的依赖关系,或对已有的一组任务进行任务的增减或依赖关系变更操作;
所述任务依赖性确定模块,用于根据任务依赖关系建立依赖关系图,并根据任务依赖图判断给定任务是否有依赖的任务;
所述任务运行状态管理模块,用于跟踪每个任务的运行状态并持久化;
所述任务出发模块,用于触发任务,其首先检索所有满足触发条件且为未运行状态的任务,并通过任务依赖性确定模块判定能够触发的任务,并逐个触发;
所述任务处理模块,用于在任务触发后,启动相应的任务处理程序,并将其纳入运行状态管理。
本发明还提供一种支持依赖关系管理任务调度***的调度方法,包括如下步骤:
步骤10:在一组任务被创建后,利用支持依赖关系管理的任务调度***先为该任务及其所有具有依赖关系的其他所有任务创建状态跟踪记录并持久化;
步骤20:调度程序根据步骤10所记录的数据判定是否存在已满足触发条件且处于未运行状态的任务;
步骤30:检查是否无依赖任务;若无,进入步骤60,若有进入步骤40;
步骤40:根据依赖关系构建任务依赖关系图;所述任务依赖图为各任务依赖关系的有向无环图;
步骤50:检查依赖任务的执行过程;然后进入步骤60;
步骤60:将通过检查的任务触发。
优选的,所述步骤40构建任务依赖关系图需要完全满足下列条件:满足任务自身触发条件;无依赖的任务,或所有依赖的任务均已运行完成;任务自身还处于未运行状态。
优选的,所述步骤50中,检查依赖任务执行的步骤包括:
步骤501:检查是否满足任务的出发条件,若满足进入步骤502,若不满足,进入步骤512;
步骤502:检查任务手否处于未运行状态,若满足进入步骤503,若不满足,进入步骤512;
步骤503:检查该任务的依赖任务是否运行完成,是则进入步骤504,否则进入步骤512;
步骤504:触发该任务执行;
步骤505:检测步骤504所触发的任务是否执行成功;失败则进入步骤506,成功则进入步骤511;
步骤506:判断是否达到重试最大次数;若达到最大重试次数进入步骤509,若没有达到最大重试次数,则进入步骤508;
步骤507:提示人工干预,然后进入步骤511;
步骤508:记录重新执行的次数;然后进入步骤510;
步骤509:记录人工干预标志;
步骤510:记录重复执行的标志,标记该任务被重复执行,然后进入步骤511;
步骤511:更新任务的结果执行状态,然后进入步骤512;
步骤512:任务执行完成进入下一个任务执行时间点前的等待。
优选的,所述步骤507的提示人工干预的方式包括警示灯或者警报铃。
优选的,所述步骤511中所更新任务的结果执行状态分为:步骤507进入的更新任务状态的执行结果的执行失败人工干预;步骤510进入的更新任务状态的执行结果为执行成功重复执行;步骤505进入的更新任务状态的执行结果为执行成功。
本发明提出的一种支持依赖关系管理的任务调度***,有益效果在于:基于任务依赖图来体现任务之间的依赖关系,在达到当前任务的触发条件时,先基于任务依赖图获得该当前任务所依赖的任务,并在所依赖的各任务的任务执行结果状态均为执行成功的情况下,才将该任务触发。其无需由任务自身以紧耦合来检查其依赖的任务的运行结果是否正常,调度程序直接基于任务状态即可判定所依赖的任务是否执行成功,降低了任务运行的资源消耗,并提高了任务调度的效率和可靠性。
附图说明
图1为本发明的任务调度方法示意图。
图2为本发明的任务依赖关系示意图。
图3为本发明的检查依赖任务的执行过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
参照图1-3,一种支持依赖关系管理的任务调度***,包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块;
任务维护模块,用于创建一组任务并明确相互之间的依赖关系,或对已有的一组任务进行任务的增减或依赖关系变更操作;
任务依赖性确定模块,用于根据任务依赖关系建立依赖关系图,并根据任务依赖图判断给定任务是否有依赖的任务;
任务运行状态管理模块,用于跟踪每个任务的运行状态并持久化;
任务出发模块,用于触发任务,其首先检索所有满足触发条件且为未运行状态的任务,并通过任务依赖性确定模块判定能够触发的任务,并逐个触发;
任务处理模块,用于在任务触发后,启动相应的任务处理程序,并将其纳入运行状态管理。
支持依赖关系管理的任务调度***的调度方法,包括如下步骤:
步骤10:在一组任务被创建后,利用支持依赖关系管理的任务调度***先为该任务及其所有具有依赖关系的其他所有任务创建状态跟踪记录并持久化;
步骤20:调度程序根据步骤10所记录的数据判定是否存在已满足触发条件且处于未运行状态的任务;
步骤30:检查是否无依赖任务;若无,进入步骤60,若有进入步骤40;
步骤40:根据依赖关系构建任务依赖关系图;任务依赖图为各任务依赖关系的有向无环图;
构建任务依赖关系图需要完全满足下列条件:
满足任务自身触发条件;
无依赖的任务,或所有依赖的任务均已运行完成;
任务自身还处于未运行状态;
步骤50:检查依赖任务的执行过程;检查依赖任务执行的步骤包括:
步骤501:检查是否满足任务的出发条件,若满足进入步骤502,若不满足,进入步骤512;
步骤502:检查任务手否处于未运行状态,若满足进入步骤503,若不满足,进入步骤512;
步骤503:检查该任务的依赖任务是否运行完成,是则进入步骤504,否则进入步骤512;
步骤504:触发该任务执行;
步骤505:检测步骤504所触发的任务是否执行成功;失败则进入步骤506,成功则进入步骤511;
步骤506:判断是否达到重试最大次数;若达到最大重试次数进入步骤509,若没有达到最大重试次数,则进入步骤508;
步骤507:提示人工干预,然后进入步骤511;
步骤508:记录重新执行的次数;然后进入步骤510;
步骤509:利用警报铃警示工作人员记录人工干预标志;
步骤510:记录重复执行的标志,标记该任务被重复执行,然后进入步骤511;
步骤511:更新任务的结果执行状态,步骤507进入的更新任务状态的执行结果的执行失败人工干预;步骤510进入的更新任务状态的执行结果为执行成功重复执行;步骤505进入的更新任务状态的执行结果为执行成功;然后进入步骤512;
步骤512:任务执行完成进入下一个任务执行时间点前的等待,然后进入步骤60;
步骤60:将通过检查的任务触发。
以图2所示的任务依赖关系图为例:
在该任务依赖图中,总共有四个任务:任务A、任务B、任务C、任务D,其中,任务B、任务C依赖于任务A,任务D依赖于任务B和任务C。如上,在该示例说明中,各任务是定时触发,假设当前到达了任务C的运行时间,当前任务为任务C;
在步骤501中,任务调度会检测是否达到当前任务的触发条件,即到达任务C的运行时间,若判定达到任务C的触发条件,并执行步骤502中的判断;若判定没有达到任务C的触发条件,直接进入步骤512;
在步骤502中判断当前任务是否处于未运行状态。即任务C是否已经运行,若判定任务C已经运行,则直接结束本次任务进入步骤512;若判定任务C未运行,则进入步骤503判断;
在步骤503中判断任务是否有依赖任务或者依赖任务是否全部运行完成。即判定任务C没有依赖任务,或者依赖的任务全部运行完成,则进入步骤504进行触发任务C,反之则结束本次任务进入步骤512;根据任务依赖图需要判断任务A是否执行完成;
在步骤504中触发任务C,执行任务;
在步骤505中基础判断任务C是否执行成功,执行成功就进入执行步骤511更新任务C的任务结果执行状态为执行成功;若执行失败进入步骤506;
在步骤506中判断任务执行次数是否超过重复执行的最大次数,即任务C重复执行的次数达到最大重复执行次数执行步骤509,反之执行步骤508;
执行到步骤509需要记录一下需要人工干涉标志然后执行步骤507;
步骤507通过报警等方式通知人员需要进行人工干预,并进入步骤511;
重复执行次数没有达到最大值,进入步骤508,记录重复执行次数后进入步骤510;
记录重复执行次数后还需要执行步骤510记录下重复执行标志,标记此任务被重复执行;
步骤511更新任务执行状态,步骤507进来的更新任务状态为执行失败人工干预;步骤510进来的需更新任务状态为执行成功重复执行;步骤505进来的需要更新任务状态为执行成功;
步骤512即任务C执行完成进入任务C下一任务执行时间点前的等待;
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (6)

1.一种支持依赖关系管理的任务调度***,其特征在于:包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块;
所述任务维护模块,用于创建一组任务并明确相互之间的依赖关系,或对已有的一组任务进行任务的增减或依赖关系变更操作;
所述任务依赖性确定模块,用于根据任务依赖关系建立依赖关系图,并根据任务依赖图判断给定任务是否有依赖的任务;
所述任务运行状态管理模块,用于跟踪每个任务的运行状态并持久化;
所述任务出发模块,用于触发任务,其首先检索所有满足触发条件且为未运行状态的任务,并通过任务依赖性确定模块判定能够触发的任务,并逐个触发;
所述任务处理模块,用于在任务触发后,启动相应的任务处理程序,并将其纳入运行状态管理。
2.一种根据权利要求1所述的支持依赖关系管理的任务调度***的调度方法,其特征在于:包括如下步骤:
步骤10:在一组任务被创建后,利用支持依赖关系管理的任务调度***先为该任务及其所有具有依赖关系的其他所有任务创建状态跟踪记录并持久化;
步骤20:调度程序根据步骤10所记录的数据判定是否存在已满足触发条件且处于未运行状态的任务;
步骤30:检查是否无依赖任务;若无,进入步骤60,若有进入步骤40;
步骤40:根据依赖关系构建任务依赖关系图;所述任务依赖图为各任务依赖关系的有向无环图;
步骤50:检查依赖任务的执行过程;然后进入步骤60;
步骤60:将通过检查的任务触发。
3.根据权利要求2所述的一种支持依赖关系管理的任务调度***的调度方法,其特征在于:所述步骤40构建任务依赖关系图需要完全满足下列条件:满足任务自身触发条件;无依赖的任务,或所有依赖的任务均已运行完成;任务自身还处于未运行状态。
4.根据权利要求2所述的一种支持依赖关系管理的任务调度***的调度方法,其特征在于:所述步骤50中,检查依赖任务执行的步骤包括:
步骤501:检查是否满足任务的出发条件,若满足进入步骤502,若不满足,进入步骤512;
步骤502:检查任务手否处于未运行状态,若满足进入步骤503,若不满足,进入步骤512;
步骤503:检查该任务的依赖任务是否运行完成,是则进入步骤504,否则进入步骤512;
步骤504:触发该任务执行;
步骤505:检测步骤504所触发的任务是否执行成功;失败则进入步骤506,成功则进入步骤511;
步骤506:判断是否达到重试最大次数;若达到最大重试次数进入步骤509,若没有达到最大重试次数,则进入步骤508;
步骤507:提示人工干预,然后进入步骤511;
步骤508:记录重新执行的次数;然后进入步骤510;
步骤509:记录人工干预标志;
步骤510:记录重复执行的标志,标记该任务被重复执行,然后进入步骤511;
步骤511:更新任务的结果执行状态,然后进入步骤512;
步骤512:任务执行完成进入下一个任务执行时间点前的等待。
5.根据权利要求4所述的一种支持依赖关系管理的任务调度***的调度方法,其特征在于:所述步骤507的提示人工干预的方式包括警示灯或者警报铃。
6.根据权利要求4所述的一种支持依赖关系管理的任务调度***的调度方法,其特征在于:所述步骤511中所更新任务的结果执行状态分为:步骤507进入的更新任务状态的执行结果的执行失败人工干预;步骤510进入的更新任务状态的执行结果为执行成功重复执行;步骤505进入的更新任务状态的执行结果为执行成功。
CN201811130647.0A 2018-09-27 2018-09-27 一种支持依赖关系管理的任务调度*** Pending CN109375996A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811130647.0A CN109375996A (zh) 2018-09-27 2018-09-27 一种支持依赖关系管理的任务调度***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811130647.0A CN109375996A (zh) 2018-09-27 2018-09-27 一种支持依赖关系管理的任务调度***

Publications (1)

Publication Number Publication Date
CN109375996A true CN109375996A (zh) 2019-02-22

Family

ID=65401933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811130647.0A Pending CN109375996A (zh) 2018-09-27 2018-09-27 一种支持依赖关系管理的任务调度***

Country Status (1)

Country Link
CN (1) CN109375996A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209101A (zh) * 2020-01-06 2020-05-29 深圳市同洲电子股份有限公司 一种大数据计算任务多依赖调度***
CN111950988A (zh) * 2020-08-18 2020-11-17 北京字节跳动网络技术有限公司 分布式工作流调度方法、装置、存储介质及电子设备
CN113010531A (zh) * 2021-02-05 2021-06-22 成都库珀区块链科技有限公司 一种基于有向无环图的区块链baas***任务调度框架

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965754A (zh) * 2015-03-31 2015-10-07 腾讯科技(深圳)有限公司 任务调度方法及任务调度装置
CN105656650A (zh) * 2014-11-13 2016-06-08 中兴通讯股份有限公司 一种定时跟踪方法及网元管理***
CN106293971A (zh) * 2016-08-15 2017-01-04 张家林 一种分布式任务调度的方法和装置
CN107844368A (zh) * 2017-10-26 2018-03-27 苏州市伏泰信息科技股份有限公司 环卫平台任务调度***
CN108037991A (zh) * 2017-12-26 2018-05-15 中山大学 一种支持作业依赖关系的定时作业调度方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656650A (zh) * 2014-11-13 2016-06-08 中兴通讯股份有限公司 一种定时跟踪方法及网元管理***
CN104965754A (zh) * 2015-03-31 2015-10-07 腾讯科技(深圳)有限公司 任务调度方法及任务调度装置
CN106293971A (zh) * 2016-08-15 2017-01-04 张家林 一种分布式任务调度的方法和装置
CN107844368A (zh) * 2017-10-26 2018-03-27 苏州市伏泰信息科技股份有限公司 环卫平台任务调度***
CN108037991A (zh) * 2017-12-26 2018-05-15 中山大学 一种支持作业依赖关系的定时作业调度方法及***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209101A (zh) * 2020-01-06 2020-05-29 深圳市同洲电子股份有限公司 一种大数据计算任务多依赖调度***
CN111209101B (zh) * 2020-01-06 2023-05-02 深圳市同洲电子股份有限公司 一种大数据计算任务多依赖调度***
CN111950988A (zh) * 2020-08-18 2020-11-17 北京字节跳动网络技术有限公司 分布式工作流调度方法、装置、存储介质及电子设备
CN111950988B (zh) * 2020-08-18 2022-03-29 北京字节跳动网络技术有限公司 分布式工作流调度方法、装置、存储介质及电子设备
CN113010531A (zh) * 2021-02-05 2021-06-22 成都库珀区块链科技有限公司 一种基于有向无环图的区块链baas***任务调度框架
CN113010531B (zh) * 2021-02-05 2022-11-01 成都库珀创新科技有限公司 一种基于有向无环图的区块链baas***任务调度框架

Similar Documents

Publication Publication Date Title
US11132288B2 (en) Data-driven scheduling of automated software program test suites
US9824002B2 (en) Tracking of code base and defect diagnostic coupling with automated triage
CN109375996A (zh) 一种支持依赖关系管理的任务调度***
US8341617B2 (en) Scheduling software updates
US9053240B2 (en) Computer program testing
CN106201672B (zh) 一种定时任务设置***及其定时任务运行方法
CN110287052A (zh) 一种异常任务的根因任务确定方法及装置
US9235440B2 (en) Managing job execution
US20040015846A1 (en) System, device and method for integrating functioning of autonomous processing modules, and testing apparatus using same
CN110765018B (zh) 接口自动化测试方法及设备
WO2020221097A1 (zh) 一种基于有限状态机的操作***需求层形式化建模方法及装置
CN112025766B (zh) 一种机器人***健康自检的方法、装置以及电子设备
CN110502366A (zh) 案例执行方法、装置、设备及计算机可读存储介质
CN109725906A (zh) 一种代码编译方法及对应的持续集成***
CN110780981B (zh) 一种hadoop大数据平台的任务调度管理***及方法
CN105589804A (zh) 一种基于流程驱动的测试自动化方法以及测试自动化***
CN103702191A (zh) 一种避免智能电视启动器出现anr的方法
CN113157569B (zh) 自动化测试方法、装置、计算机设备和存储介质
KR102192313B1 (ko) 소프트웨어 개발을 위한 통합관리솔루션 시스템
CN113268318A (zh) 一种任务调度的方法和分布式***
US20080072106A1 (en) Method and system of specifying semantics of a late trigger
Püschel et al. Testing self-adaptive software: requirement analysis and solution scheme
CN111177232B (zh) 一种数据处理方法、装置、***和存储介质
US11765789B1 (en) Intelligently managing automatic performance of distributed tests
WO2022013635A1 (en) Detecting of sleeping cell in a mobile network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 230000 Room 601, Building D, Six Floors, Phase I, Anhui Youth E-Commerce Industrial Park, No. 88 Lanzhou Road, Baohe Economic Development Zone, Hefei City, Anhui Province

Applicant after: Anhui dingzhongshuke Information Technology Co.,Ltd.

Address before: 230000 Room 601, Building D, Six Floors, Phase I, Anhui Youth E-Commerce Industrial Park, No. 88 Lanzhou Road, Baohe Economic Development Zone, Hefei City, Anhui Province

Applicant before: ANHUI DINGZHONG FINANCE INFORMATION CONSULTATION SERVICE Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190222