【技术实现步骤摘要】
图调度方法、装置、电子设备及计算机程序产品
[0001]本申请涉及计算机
,具体而言,本申请涉及一种图调度方法、装置、电子设备及计算机程序产品。
技术介绍
[0002]DAG(Directed Acyclic Graph,有向无环图)常常用来表示类似实时应用程序的多个任务组件(子任务)之间复杂依赖关系和形式化描述细粒度的并行任务调度问题,即DAG调度问题。
[0003]现有的DAG调度方法主要集中于研究编排计算逻辑,以Taskflow(任务流)为例,其整个设计是基于Function(函数)来进行任务组织和调度,用户在使用时需要进行繁琐的代码组织和数据管理设计,数据传递也需要采用函数传参方式不断去透传。
[0004]但是,在面对复杂的业务逻辑时,基于函数进行任务组织和调度的方式表达能力差,代码可读性差,降低了图调度的便捷性。
技术实现思路
[0005]本申请的目的旨在至少能解决上述的技术缺陷之一,本申请实施例所提供的技术方案如下:
[0006]第一方面,本申请实施例一种图调度方法,包括:
[0007]将目标业务划分为多个业务处理阶段,获取各业务处理阶段的执行顺序,并获取每一业务处理阶段中包含的至少一个逻辑过程和各逻辑过程之间的依赖关系;各业务处理阶段的执行顺序指示各业务处理阶段之间的串行关系,各逻辑过程之间的依赖关系指示业务处理阶段中各逻辑过程的连接关系和相连的逻辑过程的执行顺序;
[0008]将各业务处理阶段作为层节点,并基于各业务处理阶段的执行顺序有向连 ...
【技术保护点】
【技术特征摘要】
1.一种图调度方法,其特征在于,包括:将目标业务划分为多个业务处理阶段,获取各业务处理阶段的执行顺序,并获取每一业务处理阶段中包含的至少一个逻辑过程和各逻辑过程之间的依赖关系;各业务处理阶段的执行顺序指示各业务处理阶段之间的串行关系,各逻辑过程之间的依赖关系指示所述业务处理阶段中各逻辑过程的连接关系和相连的逻辑过程的执行顺序;将各业务处理阶段作为层节点,并基于各业务处理阶段的执行顺序有向连接各层节点,将每一业务处理阶段中的各逻辑过程作为对应的层节点中的算子,并基于所述业务处理阶段中的各逻辑过程的依赖关系有向连接对应的层节点中的各算子,得到所述目标业务对应的有向无环图DAG;在接收到针对所述目标业务的业务请求时,按各处理阶段的执行顺序调度所述DAG中的各层节点,并按每一层节点中各逻辑过程之间的依赖关系调度所述层节点中的各算子,直至所述DAG中所有算子调度完毕。2.根据权利要求1所述的方法,其特征在于,按每一层节点中各逻辑过程之间的依赖关系调度所述层节点中的各算子,包括:基于所述依赖关系,确定当前时刻所述层节点中的可执行算子;基于所述目标业务的运行上下文,调度所述当前时刻所述层节点中的可执行算子,所述运行上下文包含所述目标业务中数据对象的信息。3.根据权利要求2所述的方法,其特征在于,所述基于所述依赖关系,确定当前时刻所述层节点中的可执行算子,包括:基于所述依赖关系,确定所述层节点中各算子对应的前置算子,每一算子的前置算子为与所述算子连接、且执行顺序在所述算子之前的算子,并将各算子中在所述当前时刻对应的所有前置算子都已被调度的算子确定为可执行算子。4.根据权利要求2所述的方法,其特征在于,所述基于所述目标业务的运行上下文,调度所述当前时刻所述层节点中的可执行算子,包括:从所述运行上下文数据中,依次获取各可执行算子所要处理的目标数据对象的信息;分别基于各可执行算子的目标数据对象的信息,并行获取所述可执行算子的目标数据对象的更新信息;将各可执行节点的目标数据对象的更新信息,依次合并至所述运行上下文。5.根据权利要求4所述的方法,其特征在于,所述算子包括第一类型算子和第二类型算子,所述第一类型算子用于处理所述目标业务中的多个数据对象,所述第二类型算子用于处理所述目标业务中的一个数据对象;所述基于每一可执行算子的目标数据对象的信息获取所述可执行算子的目标数据对象的更新信息,包括:若可执行算子为第一类型算子,则将所述可执行算子的多个目标数据对象划分为多份,分别基于各份目标数据对象的信息并行处理对应的目标数据对象,得到所述可执行算子的目标数据对象的更新信息;若可执行算子为第二类型算子,则基于所述可执行算子的目标数据对象的信息对所述目标数据对象进行处理,得到所述可执行算子的目标数据对象的更新信息。6.根据权利要求5所述的方法,其特征在于,所述分别基于各份目标数据对象的信息并
行处理对应的目标数据对象,包括:若所述可执行算子对应的逻辑过程为本地逻辑,...
【专利技术属性】
技术研发人员:王超,李辉,邵杰,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。