一种基于有向无环图的任务调度方法、装置、设备及介质制造方法及图纸

技术编号:32935022 阅读:14 留言:0更新日期:2022-04-07 12:26
本申请实施例属于大数据领域,涉及一种基于有向无环图的任务调度方法,包括根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本申请还提供一种基于有向无环图的任务调度装置、设备及介质。本申请可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。便于任务的维护。便于任务的维护。

【技术实现步骤摘要】
一种基于有向无环图的任务调度方法、装置、设备及介质


[0001]本申请涉及大数据
,尤其涉及一种基于有向无环图的任务调度方法及其相关设备。

技术介绍

[0002]现有技术中的大数据计算、分析和处理,一般由很多独立的进程完成,每个进程完成特定的数据处理逻辑。其中的进程称之为数据加工任务。
[0003]在实际的处理过程中,数据和数据之间存在着先后的顺序逻辑关系。比如,要处理数据A,首先要完成数据B的处理,因为A依赖于B的结果。由于数据之间存在关联和逻辑关系,对应的数据加工任务之间也有对应的关联和依赖,为保证数据处理的正确结果,要求这些加工任务按照逻辑关系有序、高效的执行。所以系统需要定义任务的规则和属性,对任务的执行顺序和逻辑进行编排,确保任务的高效执行。

技术实现思路

[0004]本申请实施例的目的在于提出一种基于有向无环图的任务调度方法、及其相关设备,其主要目的是为了确保各个任务之间能够有序的执行,便于对任务进行维护。
[0005]为了解决上述技术问题,本申请实施例提供一种基于有向无环图的任务调度方法,采用了如下所述的技术方案:
[0006]一种基于有向无环图的任务调度方法,包括下述步骤:
[0007]根据业务类型对多个任务进行分类;
[0008]对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
[0009]将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;
[0010]触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
[0011]进一步的,在所述根据业务类型对多个任务进行分类的步骤之后还包括:
[0012]设定每个类别的所述任务的规则及属性,所述任务的规则为在规则所指定的事件被触发后该任务被执行,所述任务的属性包括任务的名称和说明。
[0013]进一步的,所述对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集的步骤具体包括:
[0014]按照任务数量建立子任务集;
[0015]对每类所述任务进行拆分,将每个任务的所有子任务保存在所述子任务集中;
[0016]对每个子任务集中的子任务进行代号和逻辑标注。
[0017]进一步的,所述对每个子任务集中的子任务进行代号和逻辑标注的步骤具体为:将所述子任务集中的每个子任务在其他子任务集中进行查找,判断是否有所述每个子任务的逻辑子任务,若是则在所述任务集中进行代号和逻辑标注。
[0018]进一步的,在所述将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构的步骤具体包括:
[0019]获取每个所述子任务集中的代号和逻辑标注;
[0020]根据所述代号和逻辑标注进行编排,以形成有逻辑关系的序列;
[0021]调用所述代号所对应的子任务名称,以所述子任务名称为节点,将所述逻辑序列为边组成有向无环图的数据结构;
[0022]对所述有向无环图的数据结构进行无环校验,若校验通过则完成所述有向无环图的数据结构的建立,若校验不通过则发出警报。
[0023]进一步的,所述若校验不通过则发出警报的步骤之后还包括:
[0024]输出所述校验不通过中有环处的子任务名称和逻辑关系,对所述逻辑关系执行删除操作,并将所述任务名称和逻辑关系纳入一名单数据库;
[0025]在后续有向无环图的数据结构时,预先将待建立的子任务名称和逻辑关系输入至所述名单数据库中查找,若存在则直接丢弃该逻辑关系。
[0026]进一步的,所述触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务的步骤具体包括:
[0027]触发引用所述任务的事件;
[0028]将所述事件在所述规则中进行遍历查找,若存在则在所述有向无环图的数据结构中执行任务。
[0029]为了解决上述技术问题,本申请实施例还提供一种基于有向无环图的任务调度方法装置,采用了如下所述的技术方案:
[0030]一种基于有向无环图的任务调度方法装置,包括:
[0031]分类模块,用于根据业务类型对多个任务进行分类;
[0032]拆分模块,用于对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;
[0033]编排模块,用于将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;及
[0034]触发模块,用于触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。
[0035]为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
[0036]一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述的基于有向无环图的任务调度方法的步骤。
[0037]为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
[0038]一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述的基于有向无环图的任务调度方法的步骤。
[0039]与现有技术相比,本申请实施例主要有以下有益效果:本专利技术根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。本专利技术可以将所有任务组成一个有向无环图的数据结构,根据有向无环图的遍历算法进行调度,确保了各个任务之间的有序执行,便于任务的维护。
附图说明
[0040]为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]图1是本申请可以应用于其中的示例性系统架构图;
[0042]图2根据本申请的基于有向无环图的任务调度方法的一个实施例的流程图;
[0043]图3是图2中步骤S202的一种具体实施方式的流程图;
[0044]图4是图2中步骤S203的一种具体实施方式的流程图;
[0045]图5是图2中步骤S204的一种具体实施方式的流程图;
[0046]图6是根据本申请的基于有向无环图的任务调度装置的一个实施例的结构示意图;
[0047]图7是图6所示拆分模块一种具体实施方式的结构示意图;...

【技术保护点】

【技术特征摘要】
1.一种基于有向无环图的任务调度方法,其特征在于,包括下述步骤:根据业务类型对多个任务进行分类;对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集;将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构;触发引用所述任务的事件,在所述有向无环图的数据结构中执行任务。2.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,在所述根据业务类型对多个任务进行分类的步骤之后还包括:设定每个类别的所述任务的规则及属性,所述任务的规则为在规则所指定的事件被触发后该任务被执行,所述任务的属性包括任务的名称和说明。3.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,所述对每类所述任务进行拆分形成多个子任务,将每类所述任务中的子任务形成子任务集的步骤具体包括:按照任务数量建立子任务集;对每类所述任务进行拆分,将每个任务的所有子任务保存在所述子任务集中;对每个子任务集中的子任务进行代号和逻辑标注。4.根据权利要求3所述的基于有向无环图的任务调度方法,其特征在于,所述对每个子任务集中的子任务进行代号和逻辑标注的步骤具体为:将所述子任务集中的每个子任务在其他子任务集中进行查找,判断是否有所述每个子任务的逻辑子任务,若是则在所述任务集中进行代号和逻辑标注。5.根据权利要求1所述的基于有向无环图的任务调度方法,其特征在于,在所述将子任务集中所述子任务按照执行逻辑顺序进行编排,以每个所述子任务为节点、以所述子任务之间的逻辑关系为边组成有向无环图的数据结构的步骤具体包括:获取每个所述子任务集中的代号和逻辑标注;根据所述代号和逻辑标注进行编排,以形成有逻辑关系的序列;调用所述代号所对应的子任务名称,以所述子任务名称为节点,将所述逻辑序列为边组...

【专利技术属性】
技术研发人员:黄鹏飞
申请(专利权)人:平安普惠企业管理有限公司
类型:发明
国别省市:

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

1