任务调度方法和装置、计算设备、存储介质及程序产品与流程

文档序号:37980803发布日期:2024-05-13 12:39阅读:7来源:国知局
任务调度方法和装置、计算设备、存储介质及程序产品与流程

本技术涉及计算机,特别涉及任务调度方法和装置、计算设备、计算机可读存储介质及计算机程序产品。


背景技术:

1、在计算机技术领域,往往需要短时间内处理多个任务,这些任务可能相同也可能不同,多个任务之间可能还具有先后执行的逻辑的关系和不同的任务优先级。在有限的资源条件下,如何调度这些任务是亟待解决的问题。

2、现有的任务调度技术是基于hadoop分布式框架来实现的,这意味着需要借助hadoop分布式框架的各个组件来完成任务调度,而这些组件的使用非常复杂,并且导致任务的描绘和调度会非常复杂,这导致较高的使用成本;不仅如此,在hadoop分布式框架下,任务节点难以做到动态扩缩容,资源利用率较低。


技术实现思路

1、鉴于此,本技术提供了一种任务调度方法和装置、计算设备、计算机可读存储介质及计算机程序产品,期望缓解或克服上面提到的部分或全部缺陷以及其他可能的缺陷。

2、根据本技术的第一方面,提供了一种任务调度方法,包括:获取目标任务和当前资源信息,其中所述目标任务包括多个类别的分任务,所述多个类别的分任务之间具有关联关系,每个类别的分任务具有相应的任务优先级、最大并发数和环境组件,所述最大并发数指示相应类别的分任务被执行的个数,所述环境组件表示相应类别的分任务的执行环境,所述当前资源信息指示用于执行所述目标任务的当前资源; 根据各个类别的分任务之间的所述关联关系,确定所述多个类别的分任务中类别间的数据流动方向,所述数据流动方向指示各个类别的分任务的输入数据的来源和输出数据的去向;根据所述多个类别的分任务中类别间的数据流动方向、每个类别的分任务的任务优先级、最大并发数,确定所述各个分任务的执行顺序;根据所述各个分任务的执行顺序和所述当前资源信息,利用相应类别的分任务的执行环境,执行所述各个分任务,从而完成所述目标任务。

3、在根据本技术的一些任务调度方法的实施例中,根据各个类别的分任务之间的所述关联关系,确定所述多个类别的分任务中类别间的数据流动方向,包括:对于所述多个类别的分任务中存在直接关联关系的每两个类别的分任务,响应于所述两个类别的分任务中的第一类别的分任务是第二类别的分任务的父任务,将所述第一类别的分任务的输出数据的去向确定为所述第二类别的分任务,所述第二类别的分任务的输入数据的来源确定为所述第一类别的分任务。

4、在根据本技术的一些任务调度方法的实施例中,根据所述多个类别的分任务中类别间的数据流动方向、每个类别的分任务的任务优先级、最大并发数,确定所述各个分任务的执行顺序,包括:根据所述多个类别的分任务以及各个类别的分任务之间的数据流动方向,建立基础有向无环图,其中所述基础有向无环图的节点表示分任务的类别,所述基础有向无环图的边表示连接的两个类别的分任务之间的数据流动方向;根据所述基础有向无环图和各个类别的分任务的最大并发数,确定执行有向无环图,其中所述执行有向无环图的节点表示分任务,所述执行有向无环图的边表示连接的两个分任务之间的数据流动方向;基于每个类别的分任务的任务优先级,确定所述执行有向无环图中各个分任务的执行顺序。

5、在根据本技术的一些任务调度方法的实施例中,基于每个类别的分任务的任务优先级,确定所述执行有向无环图中各个分任务的执行顺序,包括:基于每个类别的分任务的任务优先级,根据深度优先遍历的方式来遍历所述执行有向无环图;根据各个节点被遍历的顺序确定各个分任务的执行顺序。

6、在根据本技术的一些任务调度方法的实施例中,基于每个类别的分任务的任务优先级,确定所述执行有向无环图中各个分任务的执行顺序,包括:基于每个类别的分任务的任务优先级,根据广度优先遍历的方式来遍历所述执行有向无环图;根据各个节点被遍历的顺序确定各个分任务的执行顺序。

7、在根据本技术的一些任务调度方法的实施例中,执行有向无环图的边具有数据存储路径,其中所述数据存储路径存储所述边连接的两个分任务中的父任务的输出数据。

8、在根据本技术的一些任务调度方法的实施例中,执行有向无环图的边还具有日志表,所述日志表指示所述边连接的两个分任务中的父任务的执行情况。

9、在根据本技术的一些任务调度方法的实施例中,根据所述各个分任务的执行顺序和所述当前资源信息,利用相应类别的分任务的执行环境,执行所述各个分任务,包括:对于每一个被执行的分任务:根据所述当前资源信息为所述分任务分配资源;根据所述分任务相应的环境组件建立相应执行环境;根据所述执行有向无环图,获取所述被执行的分任务的输入数据;在所述相应执行环境中,处理所述输入数据,以得到输出数据。

10、在根据本技术的一些任务调度方法的实施例中,输入数据包括至少一个待处理对象,每个待处理对象具有处理优先级;并且所述在所述相应执行环境中,处理所述输入数据,包括:按照所述至少一个待处理对象的处理优先级来处理所述至少一个待处理对象。

11、在根据本技术的一些任务调度方法的实施例中,获取目标任务,包括:获取任务日程,所述任务日程指示至少一个任务的执行时间;响应于到达所述至少一个任务中的一个任务的执行时间,获取所述一个任务作为所述目标任务。

12、在根据本技术的一些任务调度方法的实施例中,每个目标任务还具有任务优先级,并且所述方法还包括:响应于到达多个任务的执行时间,根据所述各个任务的任务优先级确定要获取的任务。

13、根据本技术的第二方面,提供了一种任务调度装置,该任务调度装置包括:获取模块,配置为获取目标任务和当前资源信息,其中所述目标任务包括多个类别的分任务,所述多个类别的分任务之间具有关联关系,每个类别的分任务具有相应的任务优先级、最大并发数和环境组件,所述最大并发数指示相应类别的分任务被执行的个数,所述环境组件表示相应类别的分任务的执行环境,所述当前资源信息指示用于执行所述目标任务的当前资源;第一确定模块,配置为根据各个类别的分任务之间的所述关联关系,确定所述多个类别的分任务中类别间的数据流动方向,所述数据流动方向指示各个类别的分任务的输入数据的来源和输出数据的去向;第二确定模块,配置为根据所述多个类别的分任务中类别间的数据流动方向、每个类别的分任务的任务优先级、最大并发数,确定所述各个分任务的执行顺序;执行模块,配置为根据所述各个分任务的执行顺序和所述当前资源信息,利用相应类别的分任务的执行环境,执行所述各个分任务,从而完成所述目标任务。

14、根据本技术的第三方面,提供了一种计算设备,包括存储器和处理器,其中所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时促使所述处理器执行根据本技术一些实施例的任务调度方法的步骤。

15、根据本技术的第四方面,提供了一种计算机可读存储介质,其上存储计算机可读指令,所述计算机可读指令在被执行时实现根据本技术一些实施例的任务调度方法。

16、根据本技术的第五方面,提供了一种计算机程序产品,包括计算机指令,计算机指令在被处理器执行时实现根据本技术一些实施例的任务调度方法。

17、在根据本技术一些实施例的任务调度方法和装置中,首先实现了与hadoop分布式框架的完全解耦,不需要限定于任何hadoop分布式框架的组件的配合,所以只需要明确目标任务的分任务之间的关联关系和分任务的最大并发数、分任务的优先级,无需配置其他信息,具有极低的使用成本;其次,每个类别的分任务具有相应的环境组件,这意味着可以临时建立执行环境来执行分任务,并在执行结束后删除该执行环境,因此具有很高的动态扩缩容的性能,降低了资源的成本;最后,通过先确定类别间的数据流动方向,再确定各个分任务具体的执行顺序,使得仅需要关注分任务之间的数据的输入和输出即可实现各个任务的调度,这可以显著降低任务的调度成本,同时保证大量任务的高效执行。

18、根据下文描述的实施例,本技术的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本技术的这些和其它优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1