一种支持依赖关系管理的任务调度系统技术方案

技术编号:20424894 阅读:31 留言:0更新日期:2019-02-23 08:24
本发明专利技术公开了一种支持依赖关系管理的任务调度系统,包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块。本发明专利技术无需由任务自身以紧耦合来检查其依赖的任务的运行结果是否正常,调度程序直接基于任务状态即可判定所依赖的任务是否执行成功,降低了任务运行的资源消耗,并提高了任务调度的效率和可靠性。

【技术实现步骤摘要】
一种支持依赖关系管理的任务调度系统
本专利技术涉及任务调度管理
,尤其涉及一种支持依赖关系管理的任务调度系统。
技术介绍
目前在计算机系统中对任务的执行都是采用在某个具体的时间点上由调度服务器进行触发调度以实现对任务的调度。该时间点往往是采用时间表达式来体现的,这些时间表达式可以表示某个具体的时间点,甚至可以精确到秒级对任务进行触发调度。因此,这种触发方式可以很好的实现在特定的某个时间点对任务进行触发调度。然而,由于系统的业务复杂性,许多系统中的任务之间是存在紧密的相关性的。比如在一个业务目标的处理逻辑的处理逻辑非常复杂的情况下,系统中可能需要多个任务协作才能完成。现有的调度系统并没有对这种任务间的依赖关系管理提供很好的支持,基本只能由具体任务逻辑的开发人员在任务启动后逐个检查其依赖的所有任务是否完成,并在依赖任务未完成时循环检查直到运行条件满足。这样的模式会带来许多问题:例如,检查依赖任务是否完成无固定的标准,需要按照相关任务的逻辑选定关键事件做为特征,耦合过于紧密;任务长时间空转,增大了系统处理程序崩溃和任务异常退出的复杂度;依赖关系由各个任务分别管理,难以调整和管理等等。此外任务长时间空转可能导致在系统出现故障重新启动后,可能有大量任务一部分在运行过程中停止,一部分在空转过程中停止,此时要把系统恢复到重新启动前的状态也有非常大的困难。为解决上述问题,提出一种支持依赖关系管理的任务调度系统。
技术实现思路
本专利技术的目的是为了解决现有技术中一组存在依赖关系的任务在调度过程中须由任务自身来实现紧耦合、逻辑不严格的依赖关系管理而带来各种问题的缺点,而提出的一种支持依赖关系管理的任务调度系统。为了实现上述目的,本专利技术采用了如下技术方案:设计一种支持依赖关系管理的任务调度系统,其特征在于:包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块;所述任务维护模块,用于创建一组任务并明确相互之间的依赖关系,或对已有的一组任务进行任务的增减或依赖关系变更操作;所述任务依赖性确定模块,用于根据任务依赖关系建立依赖关系图,并根据任务依赖图判断给定任务是否有依赖的任务;所述任务运行状态管理模块,用于跟踪每个任务的运行状态并持久化;所述任务出发模块,用于触发任务,其首先检索所有满足触发条件且为未运行状态的任务,并通过任务依赖性确定模块判定能够触发的任务,并逐个触发;所述任务处理模块,用于在任务触发后,启动相应的任务处理程序,并将其纳入运行状态管理。本专利技术还提供一种支持依赖关系管理任务调度系统的调度方法,包括如下步骤:步骤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:检查任务手否处于未运本文档来自技高网...

【技术保护点】
1.一种支持依赖关系管理的任务调度系统,其特征在于:包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块;所述任务维护模块,用于创建一组任务并明确相互之间的依赖关系,或对已有的一组任务进行任务的增减或依赖关系变更操作;所述任务依赖性确定模块,用于根据任务依赖关系建立依赖关系图,并根据任务依赖图判断给定任务是否有依赖的任务;所述任务运行状态管理模块,用于跟踪每个任务的运行状态并持久化;所述任务出发模块,用于触发任务,其首先检索所有满足触发条件且为未运行状态的任务,并通过任务依赖性确定模块判定能够触发的任务,并逐个触发;所述任务处理模块,用于在任务触发后,启动相应的任务处理程序,并将其纳入运行状态管理。

【技术特征摘要】
1.一种支持依赖关系管理的任务调度系统,其特征在于:包括任务维护模块、任务依赖性确定模块、任务运行状态管理模块、任务出发模块和任务处理模块;所述任务维护模块,用于创建一组任务并明确相互之间的依赖关系,或对已有的一组任务进行任务的增减或依赖关系变更操作;所述任务依赖性确定模块,用于根据任务依赖关系建立依赖关系图,并根据任务依赖图判断给定任务是否有依赖的任务;所述任务运行状态管理模块,用于跟踪每个任务的运行状态并持久化;所述任务出发模块,用于触发任务,其首先检索所有满足触发条件且为未运行状态的任务,并通过任务依赖性确定模块判定能够触发的任务,并逐个触发;所述任务处理模块,用于在任务触发后,启动相应的任务处理程序,并将其纳入运行状态管理。2.一种根据权利要求1所述的支持依赖关系管理的任务调度系统的调度方法,其特征在于:包括如下步骤:步骤10:在一组任务被创建后,利用支持依赖关系管理的任务调度系统先为该任务及其所有具有依赖关系的其他所有任务创建状态跟踪记录并持久化;步骤20:调度程序根据步骤10所记录的数据判定是否存在已满足触发条件且处于未运行状态的任务;步骤30:检查是否无依赖任务;若无,进入步骤60,若有进入步骤40;步骤40:根据依赖关系构建任务依赖关系图;所述任务依赖图为各任务依赖关系的有向无环图;步骤50:检查依赖任务的执行过程;然后进入步骤60;步骤60:将通过检查的任务触发。3.根据权利要求2所述的一种支持依赖关系管理的任务调度系统的调度方法,其特征在于:所述步骤40构建任务依赖关系图需要完全满足下列条件:满足任务自身触发条件;无依赖的任务,或所有依赖的任务均已运行完成;...

【专利技术属性】
技术研发人员:张甄
申请(专利权)人:安徽省鼎众金融信息咨询服务有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1