任务处理流程的调度及故障恢复方法技术

技术编号:14903905 阅读:57 留言:0更新日期:2017-03-29 19:06
本发明专利技术公开了一种任务处理流程的调度及故障恢复方法,用于解决现有流程控制方法在执行批量任务时效率低的技术问题。技术方案是由用户建立流程描述文件,描述作业流程中每一个任务的次序关系和运行需要的资源等信息,将作业描述文件提交由流程控制软件处理和调度执行。流程调度软件通过描述文件为任务程序准备好程序执行所需要的资源,对任务程序的执行状态进行监控,将任务状态的变化实时更新到分布式数据库中。这样,在流程恢复时,只需要查询数据库就能够将流程恢复到异常前的正常状态,避免了文件检索等复杂耗时的操作,提高了执行批量任务时的效率。

【技术实现步骤摘要】

本专利技术属于计算机自动化流程控制和处理领域,具体涉及一种任务处理流程的调度及故障恢复方法。
技术介绍
作业流程执行的自动化是计算机流程调度领域的一个重要目标,准确的对作业中的不同任务步骤进行调度,在流程执行出错后对执行错误的任务做出快速响应,在物理机或软件发生故障迫使流程执行暂停后可以保存任务执行状态的信息,故障排除后可以迅速的恢复作业和任务的执行状态,这些都具有非常重要的现实意义。传统的流程调度方法同样依托于流程调度软件来执行。对于传统流程调度方法的一大缺陷是,如果在流程执行过程中,流程某一个任务执行出错,或是流程执行软件奔溃死锁,运行此软件的物理机断电或者死机,就会使流程阻塞在当前状态下无法继续向下执行。文献“申请公开号是CN101159605A的中国专利技术专利”公开了一种可实现状态记忆和恢复的流程控制方法,该方法是针对传统的流程调度的改进方法,将任务执行的时序状态实时的写入文件中,流程控制软件在从计算机断电或软件异常退出的情况下恢复后查找之前保存的任务文件,对文件进行搜索,恢复到异常之前的状态。但是这种依托于文件的方法在批量任务执行时的效率会变得很差,尤其是当任务量较大时,需要频繁的向文件写入任务的状态更新,在异常恢复时,由于检索文件只能使用顺序检索的方式,当文件中记录的状态变化过多时,对文件内容的查找也会影响异常恢复的时效性,在执行大规模任务时过多的文件读写严重影响着这种方法的吞吐量。
技术实现思路
为了克服现有流程控制方法在执行批量任务时效率低的不足,本专利技术提供一种任务处理流程的调度及故障恢复方法。该方法由用户建立流程描述文件,描述作业流程中每一个任务的次序关系和运行需要的资源等信息,将作业描述文件提交由流程控制软件处理和调度执行。流程调度软件通过描述文件为任务程序准备好程序执行所需要的资源,对任务程序的执行状态进行监控,将任务状态的变化实时更新到分布式数据库中。这样,在流程恢复时,只需要查询数据库就能够将流程恢复到异常前的正常状态,避免了文件检索等复杂耗时的操作,提高了执行批量任务时的效率。本专利技术解决其技术问题所采用的技术方案:一种任务处理流程的调度及故障恢复方法,其特点是包括以下步骤:步骤一、执行调度任务时,对于由多个任务构成的一个流程定义为一个作业,作业进一步抽象为一个DAG图。流程调度模块加载作业信息对所述作业进行调度,并使用数据库保存一个作业中各任务的关键信息,在系统发生意外宕机的情况时依据保存的信息快速定位作业中尚未完成的任务,并根据其执行状态恢复调度现场,完成作业的快速恢复,重新调度,继续执行中断的任务。在流程调度模块接收到一个新的作业之后对此作业进行分析,将作业的信息由DAG图转化为表结构存储在数据库中。对于任一作业,将作业中的任务唯一的转化为表项保存在数据库中,同时保证其结构不变。同样的,根据数据库中保存的记录还原作业DAG图。将作业保存到数据库中。步骤二、流程调度模块获取作业的信息,针对一个作业中的不同任务,在不同的物理节点进行执行,流程调度模块将对此进行判定,将任务发往相应物理节点的任务执行模块进行处理执行。对于初次提交的作业,流程调度模块通过数据库获取作业的信息,取出作业中应最先执行的任务,将其加入预备执行队列中。针对预备执行队列中的任务,流程调度模块将其依次从队列中取出,根据其中保存的信息将任务依次发往对应的任务执行模块执行。。步骤三、任务到达执行节点后,任务执行模块为其分配节点的计算资源和数据。完成预定的任务后任务执行模块将计算结果和任务运行的状态信息一并返回给流程调度模块。流程调度模块接收任务执行模块发出的消息,消息包含任务状态的更新,流程调度模块根据获得的状态更新决定接下来要执行的任务。若收到一条任务状态更新的消息,首先更新数据库中此任务的状态表项,将其状态更新为收到的新状态,并根据此次的状态变化判断其后继节点是否满足参与调度的条件。若存在一个后继节点,其前驱节点均成功执行完成,那么此后继任务满足参与调度的条件,将其状态更新为准备执行,加入预备执行队列中。步骤四、故障恢复时,一个作业由若干个任务组成,一个作业对应一个DAG图,DAG图由节点和节点之间的有向边构成。作业DAG图中的每个节点解释为一个任务,作业DAG图中每条有向边解释为任务的前驱节点和后继节点关系。作业信息中作业标识信息唯一,用于区分不同的作业;状态信息描述作业的运行状态,是任务调度的结果。作业要经历的状态有已提交、调度中、已完成,作业出错或发生异常时,进入错误状态。任务信息中作业标识信息和任务标识信息组合用于区分不同作业中的不同任务;状态信息描述任务的运行状态,调度模块根据任务的状态以及任务间先后关系进行调度。一般任务会经历已提交、调度中、运行中和完成状态,任务出错或发生意外时,进入错误状态。前驱节点和后继节点记录了作业DAG图中该任务节点相关两条边指向的节点。任务的前驱节点指任务必须在前驱结点任务结束后才能开始,任务的后继节点指当前任务结束后,其后继节点任务才能开始。在调度程序启动时,恢复工作被首先执行,通过检索数据库,判断每个任务的运行状态,重新构建作业运行时DAG图,完成故障恢复操作。本专利技术的有益效果是:该方法由用户建立流程描述文件,描述作业流程中每一个任务的次序关系和运行需要的资源等信息,将作业描述文件提交由流程控制软件处理和调度执行。流程调度软件通过描述文件为任务程序准备好程序执行所需要的资源,对任务程序的执行状态进行监控,将任务状态的变化实时更新到分布式数据库中。这样,在流程恢复时,只需要查询数据库就能够将流程恢复到异常前的正常状态,避免了文件检索等复杂耗时的操作,提高了执行批量任务时的效率。本专利技术基于消息模式对流程进行调度,同时将作业流程中任务执行的每一步都保存在高可靠的分布式数据库中,依据数据库中任务的状态来驱动作业的调度,执行高效。在系统发生宕机等意外情况时依据数据库中保存的信息可以快速定位尚未完成的作业流程,并根据执行状态恢复调度现场,执行重新调度,相比使用扁平的文件保存信息在时效性、可靠性和吞吐量上有显著的提升,可实现在几百毫秒的级别快速定位和恢复异常流程。下面结合附图和具体实施方式对本专利技术作详细说明。附图说明图1是本专利技术任务处理流程的调度及故障恢复方法中任务处理流程的调度流程图。图2是本专利技术任务处理流程的调度及故障恢复方法中任务处理流程的故障恢复流程图。具体实施方式参照图1-2。本专利技术任务处理流程的调度及故障恢复方法具体步骤如下:1.调度方法技术方案1)对于由多个任务构成的一个流程将其定义为一个作业,作业必须可以进一步抽象为一个DAG图(DirectAcyclicGraph,有向无环图)。流程调度模块加载作业信息对此作业进行调度,并使用数据库保存一个作业中各任务的关键信息,在系统发生意外宕机等情况时依据保存的信息可以快速定位作业中尚未完成的任务,并根据其执行状态恢复调度现场,完成作业的快速恢复,重新调度,继续执行中断的任务,以此来保证任务执行的可靠性。2)流程调度模块获取作业的信息,针对一个作业中的不同任务,可能在不同的物理节点进行执行,流程调度模块将对此进行判定,将任务发往相应物理节点的任务执行模块进行处理执行。3)任务到达执行节点后,任务执行模块为其分配节点的本文档来自技高网...

【技术保护点】
一种任务处理流程的调度及故障恢复方法,其特征在于包括以下步骤:步骤一、执行调度任务时,对于由多个任务构成的一个流程定义为一个作业,作业进一步抽象为一个DAG图;流程调度模块加载作业信息对所述作业进行调度,并使用数据库保存一个作业中各任务的关键信息,在系统发生意外宕机的情况时依据保存的信息快速定位作业中尚未完成的任务,并根据其执行状态恢复调度现场,完成作业的快速恢复,重新调度,继续执行中断的任务;在流程调度模块接收到一个新的作业之后对此作业进行分析,将作业的信息由DAG图转化为表结构存储在数据库中;对于任一作业,将作业中的任务唯一的转化为表项保存在数据库中,同时保证其结构不变;同样的,根据数据库中保存的记录还原作业DAG图;将作业保存到数据库中;步骤二、流程调度模块获取作业的信息,针对一个作业中的不同任务,在不同的物理节点进行执行,流程调度模块将对此进行判定,将任务发往相应物理节点的任务执行模块进行处理执行;对于初次提交的作业,流程调度模块通过数据库获取作业的信息,取出作业中应最先执行的任务,将其加入预备执行队列中;针对预备执行队列中的任务,流程调度模块将其依次从队列中取出,根据其中保存的信息将任务依次发往对应的任务执行模块执行;;步骤三、任务到达执行节点后,任务执行模块为其分配节点的计算资源和数据;完成预定的任务后任务执行模块将计算结果和任务运行的状态信息一并返回给流程调度模块;流程调度模块接收任务执行模块发出的消息,消息包含任务状态的更新,流程调度模块根据获得的状态更新决定接下来要执行的任务;若收到一条任务状态更新的消息,首先更新数据库中此任务的状态表项,将其状态更新为收到的新状态,并根据此次的状态变化判断其后继节点是否满足参与调度的条件;若存在一个后继节点,其前驱节点均成功执行完成,那么此后继任务满足参与调度的条件,将其状态更新为准备执行,加入预备执行队列中;步骤四、故障恢复时,一个作业由若干个任务组成,一个作业对应一个DAG图,DAG图由节点和节点之间的有向边构成;作业DAG图中的每个节点解释为一个任务,作业DAG图中每条有向边解释为任务的前驱节点和后继节点关系;作业信息中作业标识信息唯一,用于区分不同的作业;状态信息描述作业的运行状态,是任务调度的结果;作业要经历的状态有已提交、调度中、已完成,作业出错或发生异常时,进入错误状态;任务信息中作业标识信息和任务标识信息组合用于区分不同作业中的不同任务;状态信息描述任务的运行状态,调度模块根据任务的状态以及任务间先后关系进行调度;一般任务会经历已提交、调度中、运行中和完成状态,任务出错或发生意外时,进入错误状态;前驱节点和后继节点记录了作业DAG图中该任务节点相关两条边指向的节点;任务的前驱节点指任务必须在前驱结点任务结束后才能开始,任务的后继节点指当前任务结束后,其后继节点任务才能开始;在调度程序启动时,恢复工作被首先执行,通过检索数据库,判断每个任务的运行状态,重新构建作业运行时DAG图,完成故障恢复操作。...

【技术特征摘要】
1.一种任务处理流程的调度及故障恢复方法,其特征在于包括以下步骤:步骤一、执行调度任务时,对于由多个任务构成的一个流程定义为一个作业,作业进一步抽象为一个DAG图;流程调度模块加载作业信息对所述作业进行调度,并使用数据库保存一个作业中各任务的关键信息,在系统发生意外宕机的情况时依据保存的信息快速定位作业中尚未完成的任务,并根据其执行状态恢复调度现场,完成作业的快速恢复,重新调度,继续执行中断的任务;在流程调度模块接收到一个新的作业之后对此作业进行分析,将作业的信息由DAG图转化为表结构存储在数据库中;对于任一作业,将作业中的任务唯一的转化为表项保存在数据库中,同时保证其结构不变;同样的,根据数据库中保存的记录还原作业DAG图;将作业保存到数据库中;步骤二、流程调度模块获取作业的信息,针对一个作业中的不同任务,在不同的物理节点进行执行,流程调度模块将对此进行判定,将任务发往相应物理节点的任务执行模块进行处理执行;对于初次提交的作业,流程调度模块通过数据库获取作业的信息,取出作业中应最先执行的任务,将其加入预备执行队列中;针对预备执行队列中的任务,流程调度模块将其依次从队列中取出,根据其中保存的信息将任务依次发往对应的任务执行模块执行;;步骤三、任务到达执行节点后,任务执行模块为其分配节点的计算资源和数据;完成预定的任务后任务执行模块将计算结果和任务运行的状态信息一并返回给流程调度模块;流程调度模块接收任务执行模块发出的消息,消息包含任务状...

【专利技术属性】
技术研发人员:谷建华周兴社王云岚侯正雄兰学渊郝莹
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

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

1