任务处理方法和任务处理装置制造方法及图纸

技术编号:24352664 阅读:40 留言:0更新日期:2020-06-03 01:55
本申请公开了一种任务处理方法和任务处理装置。该任务处理方法包括:利用多个任务之间的约束关系,建立任务序列图;对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;根据排序结果执行所述多个任务。根据本发明专利技术实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。

Task processing method and device

【技术实现步骤摘要】
任务处理方法和任务处理装置
本申请涉及计算处理领域,特别是涉及一种任务处理方法和任务处理装置。
技术介绍
通常来说,对于提供计算处理服务的计算机系统,不论是离线提供服务或者是在线提供服务,均需要多个模块或者系统协同工作才能完成整个服务流程,在这个任务完成过程中一般存在多个节点,每个节点负责计算处理不同的任务。其中,通常会存在一个节点需要访问多个其他节点的服务,一个节点需要其他节点计算获得的数据才能进行下一步计算处理。因此任务之间存在执行顺序的关系,或称为任务之间输入输出的约束关系。鉴于节点之间存在执行顺序关系,通常来说现有技术采用任务的串行执行方式,按照先后顺序排列有执行顺序关系的任务,使得任务串行执行。但是串行执行的方式延长了任务整体执行的时间,某一个计算节点可能会长时间处于等待其他并无约束关系的节点执行任务,导致任务执行的效率降低,浪费了计算装置的资源。
技术实现思路
鉴于上述问题,本专利技术一实施例提出一种任务处理方法和任务处理装置,以解决现有技术存在的问题。为了解决上述问题,本申请一实施例公开一种一种任务处理方法,包括:利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;根据拓扑排序结果执行所述多个任务。在一可选实施例中,所述对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务的步骤之后,所述方法还包括:根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。在一可选实施例中,所述根据多个节点中每一个节点对应的任务的完成时间,确定节点类型之后,还包括:当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。在一可选实施例中,所述根据多个节点中每一个节点对应的任务的完成时间,确定所述节点的节点类型的步骤包括:确定多个节点中每一个节点的任务执行时间;计算多个节点中每一个节点对应的任务的最早完成时间;计算多个节点中每一个节点对应的任务的最迟完成时间;根据节点对应的任务的所述最早完成时间和最迟完成时间,确定个所述节点的节点类型。在一可选实施例中,所述根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型的步骤包括:当节点对应的任务的最早完成时间小于最迟完成时间,则判断该节点为非关键节点;当节点对应的任务的最早完成时间等于最迟完成时间,则判断该节点为关键节点。在一可选实施例中,所述计算多个节点中每一个节点对应的任务的最早完成时间的步骤中,所述节点对应的任务的最早完成时间包括:当前节点的任务的执行时间加上前继节点的任务中最早完成时间的最大值;所述计算多个节点中每一个节点对应的任务的最迟完成时间的步骤中,所述节点的最迟完成时间包括:在当前节点的所有后继节点中的最早完成时间的最小值减去该后继节点的执行时间。在一可选实施例中,在利用多个任务之间的约束关系,建立任务序列图的步骤之前,所述方法还包括:将任务执行系统的总任务拆分为多个任务。在一可选实施例中,所述将任务执行系统的总任务拆分为多个任务的步骤中,是依据所述任务执行系统的系统开销和所述拆分后的多个任务占用的任务执行系统的资源确定拆分后的任务的粒度。在一可选实施例中,所述任务序列图为有向无环图。为了解决上述问题,本申请一实施例公开一种任务处理装置,包括:序列图建立模块,用于利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;拓扑排序模块,用于对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;任务执行模块,用于根据排序结果执行所述多个任务本申请一实施例还公开一种终端设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行上述的方法。本申请一实施例还公开一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行如下操作:利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;根据排序结果执行所述多个任务。由上述可知,本申请实施例提出的任务处理方法和装置至少包括以下优点:根据本专利技术实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请第一实施例的任务处理方法的流程图。图2是本申请实施例的任务序列图的示意图。图3是本申请第二实施例的任务处理方法的流程图。图4是本申请实施例的经过标注执行时间任务序列图的示意图。图5是本申请第三实施例的任务处理装置的方框图。图6是本申请第三实施例的任务处理装置的方框图。图7示意性地示出了用于执行根据本专利技术的方法的终端设备的框图。图8示意性地示出了用于保持或者携带实现根据本专利技术的方法的程序代码的存储单元。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。本专利技术的核心构思之一在于提出一种任务处理方法,针对多个任务,通过构建任务序列图并对任务进行拓扑排序,使得相互之间没有依赖关系的任务路径能够并行执行,相比于传统的串行执行所有任务的方式,本专利技术实施例提出的方式能够实现了优化系统的效率,使得任务流得到空置,降低了任务的执行阻塞,提高了执行的效率。本专利技术提出的方案尤其适用于高并发运行任务流,相比于应用于传统的任务流,高并发任务流具有任务并发性高、任务之间关系复杂的特点,本专利技术的任务处理方法可以将多个任务构建任务序列图并进行拓扑排序,利用排序结果对任务进行并行处理,提高了总体执行的效率。第一实施例本专利技术第一实本文档来自技高网...

【技术保护点】
1.一种任务处理方法,其特征在于,包括:/n利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;/n对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;/n根据排序结果执行所述多个任务。/n

【技术特征摘要】
1.一种任务处理方法,其特征在于,包括:
利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
根据排序结果执行所述多个任务。


2.根据权利要求1所述的方法,其特征在于,所述对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务的步骤之后,所述方法还包括:
根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。


3.根据权利要求2所述的方法,其特征在于,所述根据多个节点中每一个节点对应的任务的完成时间,确定节点类型之后,所述方法还包括:
当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。


4.根据权利要求2或3所述的方法,其特征在于,所述根据多个节点中每一个节点对应的任务的完成时间,确定所述节点的节点类型的步骤包括:
确定多个节点中每一个节点的任务执行时间;
计算多个节点中每一个节点对应的任务的最早完成时间;
计算多个节点中每一个节点对应的任务的最迟完成时间;
根据节点对应的任务的所述最早完成时间和最迟完成时间,确定个所述节点的节点类型。


5.根据权利要求3所述的方法,其特征在于,所述根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型的步骤包括:
当节点对应的任务的最早完成时间小于最迟完成时间,则判断该节点为非关键节点;
当节点对应的任务的最早完成时间等于最迟完成时间,则判断该节点为关键节点。


6.根据权利要求4所述的方法,其特征在于,所述计算多个节点中每一个节点对应的任务的最早完成时间的步骤中,所述节点对应的任务的最早完成时间包括:当前节点的任务的执行时间加上前继节点的任务中最早完成时间的最大值;
所述计算多个节点中每一个节点对应的任务的最迟完成时间的步骤中,所述节点的最迟完成时间包括:在当前节点的所有后继节点中的最早完成时间的最小值减去该后继节点的执行时间。


7.根据权利要求1所述的方法,其特征在于,在利用多个任务之间的约束关系,建立任务序列图的步骤之前,所述方法还包括:
将任务执行系统的总任务拆分为多个任务。


8.根据权利要求7所述的方法,其特征在于,所述将任务执行系统的总任务拆分为多个任务的步骤中,是依据所述任务执行系统的系统开销和所述拆分后的多个任务占用的任务执行系统的资源确定拆分后的任务的粒度。


9.根据权利要求1所述的方法,其特征在于,所述任务序列图为有向无环图。


10.一种任务处理装置,包括:
序列图建立模块,用于利用多个任务之间的约束关系,建立任务序列图;
拓扑排序模块,用于对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
任务执行模块,用于根据拓扑排序结果执行所述多个任务。


11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
节点类型确定模块,用于根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
任务插入模块,用于当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成...

【专利技术属性】
技术研发人员:曾魁
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1