掌桥专利:专业的专利平台
掌桥专利
首页

一种任务调度方法、装置、设备及介质

文献发布时间:2023-06-19 11:26:00


一种任务调度方法、装置、设备及介质

技术领域

本发明实施例涉及计算机技术,尤其涉及一种任务调度方法、装置、设备及介质。

背景技术

为了实现任务高并发处理,现在常用的任务调度框架为分布式任务调度框架,例如xxl-job、elastic-job等,这些框架都是在原有单体任务调度框架的基础上,通过去中心化、基于分片的原理实现多集群的任务调度。

但是在分布式任务调度框架中会将所有接入的任务执行节点一视同仁,即现有分片算法选择任务执行节点时具有随机性,难以考虑基础设置消耗值,因而无法控制基础设置开销成本。

发明内容

本发明实施例提供一种任务调度方法、装置、设备及介质,涉及自动程序设计领域,通过树状分布架构的任务调度系统进行任务调度,提升分配规则的维度,降低执行任务时的基础设置消耗。

第一方面,本发明实施例提供了一种任务调度方法,应用于树状分布架构的任务调度系统,任务调度系统包括根节点层、至少一个路由节点层和执行节点层,所述方法包括:

通过根节点层中的根节点在任务中心获取至少一个目标任务;

根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点;

通过各所述目标执行节点,执行所分配的所述目标任务。

第二方面,本发明实施例还提供了一种任务调度装置,所述装置包括:

目标任务获取模块,用于通过根节点层中的根节点在任务中心获取至少一个目标任务;

目标任务转发模块,用于根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点;

目标任务执行模块,用于通过各所述目标执行节点,执行所分配的所述目标任务。

第三方面,本发明实施例还提供了一种电子设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的任务调度方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的任务调度方法。

本发明实施例的技术方案,通过根节点层中的根节点在任务中心获取至少一个目标任务,进而根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点,最终通过各目标执行节点,执行所分配的目标任务,解决了以为节点分布架构选择任务执行节点时具有随机性,无法控制基础设置消耗的问题,通过树状分布架构的任务调度系统进行任务调度,提升分配规则的维度,降低执行任务时的基础设置消耗。

附图说明

图1a是本发明实施例一中的一种任务调度方法的流程图;

图1b是本发明实施例一中的树状分布架构的任务调度系统的结构示意图;

图2是本发明实施例二中的一种任务调度方法的流程图;

图3a是本发明实施例三中的一种任务调度方法的流程图;

图3b是本发明实施例三中的一种任务获取原理示意图;

图4是本发明实施例四中的一种任务调度装置的结构示意图;

图5是本发明实施例五提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1a为本发明实施例一中的一种任务调度方法的流程图,本实施例的技术方案适用于通过树状分布架构的任务调度系统进行任务调度的情况,该方法可以由任务调度装置执行,该装置可以由软件和/或硬件来实现,并可以集成在各种通用计算机设备中。

为了便于理解,首先对树状分布架构的任务调度系统进行解释说明,如图1b所示,树状分布架构的任务调度系统包括根节点层、至少一个路由节点层和执行节点层,各节点层中均包含至少一个节点。

其中,根节点层中的根节点掌控任务从初始状态到开始执行最终到执行结束的完整生命周期,具体的,根节点用于按照预先设定的任务获取规则从任务中心获取任务,并下路由节点层分发,当任务执行完毕时,会将任务执行结果反馈至根节点进行事务性处理,例如,将任务执行结果回写入数据库。

树状分布架构的任务调度系统中包括至少一层路由节点层,路由节点层中的路由节点用于根据预先设定的路由规则,进行任务转发,例如,根据路由节点的特征值,进行任务分配,将特征值为A的任务分配至特征值为A的路由节点,将特征值为B的任务分配至特征值为B的路由节,路由节点既不改变任务的状态,也不执行任务,只负责依次向下层传递任务,以及依次向上层传递任务执行结果。与执行节点相邻的路由节点层的路由节点同样是根据执行节点的特征值进行任务分配,例如,将特征值为a的任务分配至特征值为a的路由节。

执行节点层位于树状分布架构的任务调度系统中的最底层,执行节点是整个架构中的叶子节点,用于接收路由节点转发的任务并执行任务,最终将任务执行结果向上层进行反馈。

本实施例中的任务调度方法,具体包括如下步骤:

步骤110、通过根节点层中的根节点在任务中心获取至少一个目标任务。

其中,根节点层是整个树状分布架构的最上层,其中包含了至少一个根节点,用于根据设定的任务获取规则在任务中心获取任务,以及对接收发的任务执行结果进行业务处理。

本实施例中,首先通过根节点层中的至少一个根节点各自根据任务获取规则在任务中心获取至少一个目标任务,具体的,可以采用分布式任务调度框架实现高并发下的任务获取。

示例性的,可以预先按照0-9的方案对根节点进行分片,为根节点1分配1、2和3的分片值,为根节点1分配4、5和6的分片值,为根节点3分配7、8、9和0的分片值。各根节点在任务中心获取目标任务时可以根据上述分片值进行获取,即根节点1获取任务编号以1、2和3结尾的任务作为目标任务,根节点2获取任务编号以4、5和6结尾的任务作为目标任务,根节点3获取任务编号以7、8、9和0结尾的任务作为目标任务。

步骤120、根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点。

其中,目标任务的属性信息是指目标任务的至少一项基本属性信息,示例性的,目标任务为统计某一数据中心中一部分机器的性能消耗,则基本属性信息可以是机器所在数据中心、机器所在的网络区域、机器编号以及机器的IP地址(Internet Protocol Address,互联网协议地址)等。

本实施例中,任务调度系统根据各目标任务的属性信息,依次确定各路由节点层中的至少一个目标路由节点,进而采用各路由节点层中的目标路由节点沿着树状结构依次向相邻下层传递,直至最底层的路由节点层中的路由节点将目标任务转发至执行节点层中的目标执行节点,至此,完成任务的分配。

示例性的,任务调度系统分为根节点层、一个路由节点层以及执行节点层,在根节点层中的各根节点获取到相应的目标任务(统计某一数据中心中一部分机器的性能消耗)后,根据各目标任务对应的数据中心,将目标任务下发至与任务的数据中心匹配的目标路由节点;进一步的,各目标路由节点根据各目标任务对应的网络区域,进一步将目标任务下发至与任务的网络区域匹配的穆执行节点。

步骤130、通过各目标执行节点,执行所分配的目标任务。

本实施例中,在将各目标任务下发至各目标任务执行节点后,目标任务执行节点执行所分配的目标任务,示例性的,目标任务执行节点获取目标任务所包含的设定机器的性能消耗,并对具体数据进行相关处理。

可选的,由于针对任务执行的时间较长,因此所有的任务转发和任务执行结果反馈操作均采用异步调用的方式。

本发明实施例的技术方案,通过根节点层中的根节点在任务中心获取至少一个目标任务,进而根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点,最终通过各目标执行节点,执行所分配的目标任务,解决了以为节点分布架构选择任务执行节点时具有随机性,无法控制基础设置消耗的问题,通过树状分布架构的任务调度系统进行任务调度,提升分配规则的维度,降低执行任务时的基础设置消耗。

实施例二

图2为本发明实施例二中的一种任务调度方法的流程图,本实施例在上述实施例的基础上进一步细化,提供了根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点的具体步骤。下面结合图2对本发明实施例二提供的一种任务调度方法进行说明,包括以下步骤:

步骤210、通过根节点层中的根节点在任务中心获取至少一个目标任务。

可选的,任务中心对应存储有任务状态,每个任务对应初始状态、执行状态、执行完毕状态以及超时状态中的其中一项;

通过根节点层中的根节点在任务中心获取至少一个目标任务,包括:

通过根节点层中的根节点在任务中心中获取任务状态为初始状态或者超时状态的任务作为目标任务。

其中,任务中心在存储任务时会对应存储每个任务当前的状态,包括初始状态、执行状态、执行完毕状态以及超时状态,各状态之间互斥,每个任务当前只有一个状态。初始状态表示任务未被分配或处理,执行状态表示任务正在被分配或者正在被处理,执行完毕状态表示任务已经被树状分布架构最底层的执行节点处理,超时状态表示任务在处理过程中超过设定时长,则需要被根节点重新获取并分配执行。

本可选的实施例中,通过根节点层中的根节点在任务中心获取目标任务时,会读取任务中心中的任务状态,根节点只获取处于初始状态或者超时状态的任务作为目标任务,避免多个根节点同时或者先后获取到同一任务,造成任务的重复分配和处理。

步骤220、通过根节点根据获取到的各目标任务的属性信息,在与根节点相邻的路由节点层中确定至少一个目标路由节点,并各目标任务分发至各目标路由节点中。

本实施例中,在根节点获取到目标任务后,首先通过根节点根据获取到的各目标任务的属性信息,确定一项任务分配的条件,例如,是属性信息中的其中一项,进一步的,在与其相邻的路由节点层中确定至少一个与上述分配条件相符的目标路由节点,并将各目标任务分发至各目标路由节点中。

示例性的,根节点根据目标任务对应的目标数据中心(城市A的数据中心1),在于根节点相邻的路由节点层中确定与目标数据中心相匹配的路由节点作为目标路由节点,并将各目标任务分配至与其对应的目标数据中心匹配的目标路由点中。

可选的,通过根节点根据获取到的各目标任务的属性信息,在与根节点相邻的路由节点层中确定至少一个目标路由节点,包括:

通过根节点根据获取到的各目标任务的属性信息,确定各目标任务的一级任务特征值;

通过根节点根据所述一级任务特征值和与其相邻的路由节点层中至少一类路由节点对应的节点特征值,确定与所述一级任务特征值匹配的目标类路由节点,并在所述目标类路由节点中确定至少一个目标路由节点;

在通过根节点层中的根节点在任务中心获取至少一个目标任务之前,还包括:

通过与根节点相邻的路由节点层中的各路由节点,向所述根节点层注册节点特征值;

通过根节点层,根据各路由节点的节点特征值,对各路由节点进行归类。

本可选的实施例中,在根节点获取目标任务之前,与根节点相邻的路由节点层中的各路由节点,会向根节点层注册节点特征值,根节点层可以根据各路由节点注册的节点特征值,对各路由节点进行归类,节点特征值相同的路由节点可以被认作为一个集群,即一类路由节点,在一类路由节点中各节点无差别。

针对上述路由节点分类操作,本可选中的实施例还提供了一种通过根节点根据获取到的各目标任务的属性信息,在与根节点相邻的路由节点层中确定至少一个目标路由节点的方式,具体为,首先通过根节点根据获取到的各目标任务的属性信息,确定各目标任务的一级任务特征值,在与其相邻的路由节点层中选择与一级任务特征值匹配的一类路由节点作为目标类路由节点,并在目标类路由节点中确定至少一个目标路由节点,由于在一类路由节点中各路由节点无差别,因此在目标类路由节点中确定至少一个目标路由节点可以是随机选择,或者轮询选择等方式,在这里不做具体限定。

示例性的,与根节点相邻的路由节点层中的各路由节点,会向根节点层注册节点特征值,在这一层路由节点层中节点特征值是数据中心,即各路由节点向根节点层注册其所在的数据中心,根节点层可以根据各路由节点注册的数据中心,对各路由节点进行归类。根节点在获取到目标任务后,根据获取到的各目标任务的属性信息,确定各目标任务的一级任务特征值为各目标任务所属的数据中心,进一步的,根节点在与其相邻的路由节点层中选择与一级任务特征值匹配的一类路由节点作为目标类路由节点,即选择所在数据中心与任务所属数据中心相同的一类路由节点作为目标类路由节点,进而在目标类路由节点中随机确定至少一个目标路由节点。

可选的,目标任务的属性信息包括下述至少一项:

目标任务所属的数据中心、目标任务所属的网络分区、目标任务对应的互联网协议IP地址以及任务编号。

可选的,通过根节点根据获取到的各目标任务的属性信息,确定各目标任务的一级任务特征值,包括:

通过根节点将获取到的各目标任务所属的数据中心作为各目标任务的一级任务特征值。

本可选的实施例中,提供了一种确定目标任务的一级任务特征值的方式,具体为根节点将获取到的各目标任务所属的数据中心直接作为各目标任务的一级任务特征值。示例性的,根节点在在目标任务的属性信息中读到目标任务所属数据中心为城市A的数据中心1,则可以将该属性信息作为目标任务的一级任务特征值。

可选的,通过根节点根据获取到的各目标任务的属性信息,在与根节点相邻的路由节点层中确定至少一个目标路由节点,并各所述目标任务分发至各所述目标路由节点中之后,还包括:

通过根节点将所述目标任务的任务状态修改为执行状态。

本可选的实施例中,在根节点成功将目标任务分发至目标路由节点后,根节点会将目标任务的任务状态修改为执行状态,避免其它根节点重复获取并分配该目标任务。

步骤230、以根节点确定的目标路由节点为起点,通过各目标路由节点在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发,直至在与执行节点层相邻的路由节点层中确定出目标路由节点。

本实施例中,在于根节点层相邻的路由节点层中的目标路由节点获取到目标任务后,进一步根据目标任务的任务属性信息,确定一项任务分配的条件,并根据任务分配条件,在相邻的下层路由节点中确定至少一个目标路由节点,并将目标任务向确定的目标路由节点转发;每层的路由节点均重复上述操作,直至在执行节点层相邻的路由节点层中确定出目标路由节点。

需要说明的是,每层路由节点进行任务分配时所依据的分配条件均不同。示例性的,第一层路由节点依据的分配条件是目标任务所属的数据中心,第二层路由节点所依据的分配条件是目标任务所属的网络区域。

可选的,通过各目标路由节点在相邻的下层路由节点层中确定至少一个目标路由节点,包括:

通过所述各目标路由节点确定获取到的各目标任务的中间任务特征值;

通过所述目标路由节点根据所述中间任务特征值和与其相邻的下层路由节点层中至少一类路由节点对应的节点特征值,确定与所述中间任务特征值匹配的目标类路由节点,并在所述目标类路由节点中确定至少一个目标路由节点;

在通过根节点层中的根节点在任务中心获取至少一个目标任务之前,还包括:

通过各层路由节点层中的各路由节点,向相邻的上层路由节点层中注册节点特征值;

通过接收到节点特征值的路由节点层,根据各下层路由节点的节点特征值,对各路由节点进行归类。

本可选的实施例中,在根节点获取目标任务之前,除了与根节点相邻的路由节点层中的各路由节点外,其他层的路由节点也会向相邻的上层路由节点层注册节点特征值,上层路由节点层可以根据各下层路由节点注册的节点特征值,对各下层的路由节点进行归类,节点特征值相同的下层路由节点被认作为一个集群,即一类路由节点,在一类路由节点中各节点无差别。

针对上述路由节点分类操作,本可选中的实施例还提供了一种各目标路由节点在相邻的下层路由节点层中确定至少一个目标路由节点的方式,具体为,首先通过各目标路由节点根据获取到的各目标任务的属性信息,确定各目标任务的中间任务特征值,在与其相邻的下层路由节点层中选择与中间任务特征值匹配的一类路由节点作为目标类路由节点,并在目标类路由节点中确定至少一个目标路由节点,由于在一类路由节点中各路由节点无差别,因此在目标类路由节点中确定至少一个目标路由节点可以是随机选择,或者轮询选择等方式,在这里不做具体限定。

示例性的,各路由节点层中的路由节点均会向相邻的上层路由节点层中注册节点特征值,在这一层路由节点层中节点特征值是网络区域,即各路由节点向相邻的上层路由节点层注册其所在的网络区域,上层路由节点层可以根据各下层路由节点注册的网络区域,对各路由节点进行归类。上层的路由节点在获取到目标任务后,根据获取到的各目标任务的属性信息,确定各目标任务的中间任务特征值为各目标任务所属的网络区域,进一步的,上层的路由节点在与其相邻的下层路由节点层中选择与中间任务特征值匹配的一类路由节点作为目标类路由节点,即选择所在网络区域与任务所属网络区域相同的一类路由节点作为目标类路由节点,进而在目标类路由节点中随机确定至少一个目标路由节点,这种方式使任务分配至与其所属的网络区域相同的路由节点中,降低了网络流量等基础设置消耗。

可选的,通过各目标路由节点在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发,包括:

通过目标路由节点检测自身所在的路由节点层是否为与执行节点层相邻的路由节点层,若否,则在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发。

本可选的实施例中,各目标路由节点接收到上层节点转发的任务后,通过目标路由节点检测自身所在的路由节点层是否为与执行节点层相邻的路由节点层,若否,则在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发,若是,则直接在执行节点层确定目标执行节点,并将目标任务转发至目标执行节点中。

步骤240、通过与执行节点层相邻的路由节点层中的各目标路由节点,根据接收到的各目标任务的属性信息,在执行节点层中确定各目标执行节点,并将接收的各目标任务发送至各目标执行节点。

本实施例中,在与执行节点层相邻的路由节点层中的路由节点获取到目标任务后,首先通过目标路由节点根据获取到的各目标任务的属性信息,确定一项任务分配的条件,例如,是属性信息中的其中一项,进一步的,在与其相邻的执行节点层中确定至少一个与上述分配条件相符的目标执行节点,并将各目标任务分发至各目标执行节点中。

示例性的,目标路由节点根据目标任务对应的任务编号,在执行节点层中确定与与任务编号相匹配的执行节点作为目标执行节点,并将各目标任务分配至与其对应的任务编号匹配的目标执行点中。

可选的,通过与执行节点层相邻的路由节点层中的各目标路由节点,根据接收到的各目标任务的属性信息,在执行节点层中确定各所述目标执行节点,包括:

通过与所述执行节点层相邻的目标路由节点确定获取到的各目标任务的二级任务特征值;

通过所述目标路由节点根据所述二级任务特征值和执行节点层中至少一类执行节点对应的节点特征值,确定与所述二级任务特征值匹配的目标类执行节点,并在所述目标类执行节点中确定至少一个目标执行节点;

在通过根节点层中的根节点在任务中心获取至少一个目标任务之前,还包括:

通过执行节点层中的各执行节点,向相邻的路由节点层注册节点特征值;

通过与执行节点层相邻的路由节点层,根据各执行节点的节点特征值,对各执行节点进行归类。

本可选的实施例中,在根节点获取目标任务之前,执行节点层中的执行节点会向相邻的路由节点层注册节点特征值,路由节点层可以根据各执行节点注册的节点特征值,对各执行节点进行归类,节点特征值相同的执行节点被认作为一个集群,即一类执行节点,在一类执行节点中各节点无差别。

针对上述执行节点分类操作,本可选中的实施例还提供了一种通过与执行节点层相邻的路由节点层中的各目标路由节点,根据接收到的各目标任务的属性信息,在执行节点层中确定各目标执行节点的方式,具体为,首先通过各目标路由节点根据获取到的各目标任务的属性信息,确定各目标任务的二级任务特征值,在与其相邻的执行节点层中选择与二级任务特征值匹配的一类执行节点作为目标类执行节点,并在目标类执行节点中确定至少一个目标执行节点,由于在一类执行节点中各执行节点无差别,因此在目标类执行节点中确定至少一个目标执行节点可以是随机选择,或者轮询选择等方式,在这里不做具体限定。

示例性的,各执行节点层中的执行节点均会向相邻的上层路由节点层中注册节点特征值,在这一层执行节点层中节点特征值是任务编号类型,即各执行节点向相邻的上层路由节点层注册其所对应的任务编号类型,上层路由节点层可以根据各执行节点注册的任务编号类型,对各执行节点进行归类。上层的路由节点在获取到目标任务后,根据获取到的各目标任务的属性信息,确定各目标任务的二级任务特征值为各目标任务对应的任务编号,进一步的,上层的路由节点在与其相邻的执行节点层中选择与二级任务特征值匹配的一类执行节点作为目标类执行节点,即选择对应任务编号类型与任务的任务编号匹配的一类执行节点作为目标类执行节点,进而在目标类执行节点中随机确定至少一个目标执行节点。

本实施例中,通过多层次的任务调度系统,使得每一层的节点根据特征值进行节点归类,相同特征值的节点组成集群,并根据任务对应的特征值和节点对应特征值进行任务分配,实现了任务总能由基础设置消耗最小的节点执行。

步骤250、通过各目标执行节点,执行所分配的目标任务。

本实施例的技术方案,通过根节点层中的根节点在任务中心获取至少一个目标任务,然后通过根节点根据获取到的各目标任务的属性信息,在与根节点相邻的路由节点层中确定至少一个目标路由节点,并各目标任务分发至各目标路由节点中,以根节点确定的目标路由节点为起点,通过各目标路由节点在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发,直至在与执行节点层相邻的路由节点层中确定出目标路由节点,进一步通过与执行节点层相邻的路由节点层中的各目标路由节点,根据接收到的各目标任务的属性信息,在执行节点层中确定各目标执行节点,并将接收的各目标任务发送至各目标执行节点,最终通过各目标执行节点,执行所分配的目标任务,通过树状分布架构的任务调度系统进行任务调度,提升分配规则的维度,降低执行任务时的基础设置消耗。

实施例三

图3a为本发明实施例三中的一种任务调度方法的流程图,本实施例在上述实施例的基础上进一步细化,提供了在通过根节点层中的根节点在任务中心获取至少一个目标任务之前的具体步骤,以及在通过目标执行节点,执行目标任务之后的具体步骤。下面结合图3a对本发明实施例三提供的一种任务调度方法进行说明,包括以下步骤:

步骤310、根据预设的分片规则,为根节点层中的各根节点分配对应的任务片区。

本实施例中,为了实现高并发下的任务获取,根据预设的分片规则,为根节点层中的各根节点分配对应的任务片区,以使得集群中的各根节点可以根据对应的任务片区获取任务,避免了各节点重复获取任务的情况,提高了任务获取并发度。

步骤320、由根节点层中的至少一个根节点,在任务中心中获取与各根节点所属任务片区对应的至少一个目标任务。

本实施例中,在为各根节点分配对应的任务片区的基础上,由根节点层中的至少一个根节点,通过读取任务中心中各任务的特征,在任务中心中获取与各根节点所属任务片区对应的至少一个目标任务。

示例性的,预先按照0-9的方案对根节点进行分片,如图3b所示,Zookeeper为根节点1分配1、2和3的分片值,为根节点1分配4、5和6的分片值,为根节点3分配7、8、9和0的分片值。各根节点在任务中心获取目标任务时可以根据上述分片值进行获取,即根节点1获取任务编号以1、2和3结尾的任务作为目标任务,根节点2获取任务编号以4、5和6结尾的任务作为目标任务,根节点3获取任务编号以7、8、9和0结尾的任务作为目标任务,提高了获取任务的并发度。

步骤330、根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点。

可选的,本实施例的技术方案还包括:由根节点层中的至少一个根节点,以及至少一个路由节点层的至少一个路由节点,按照设定周期向相邻的下层节点发起节点状态获取请求;

当相邻的下层节点反馈的节点状态为不健康状态时,暂停向下层节点转发任务。

本可选的实施例中,除执行节点层的执行节点外,根节点层中的至少一个根节点以及至少一个路由节点层中的至少一个路由节点,均会按照设定周期向相邻的下层节点发起节点状态获取请求,从而获取下层节点反馈的节点状态,当节点状态为健康时,可以继续向该节点分配任务,否则,暂停向该节点分配任务,保证了任务调度系统的高可用性。

步骤340、通过各目标执行节点,执行所分配的目标任务。

可选的,在通过所述目标执行节点,执行所述目标任务之后,还包括:

由所述目标执行节点将与所述目标任务的执行结果反馈至相邻的路由节点层中的目标路由节点;

以目标执行节点确定的目标路由节点为起点,通过各目标路由节点在相邻的上层路由节点层中确定至少一个目标路由节点,并将接收的执行结果向确定的目标路由节点转发,直至在与根节点层相邻的路由节点层中确定出目标路由节点;

通过与根节点层相邻的路由节点层中的各目标路由节点,在根节点层中确定目标根节点,并将接收的执行结果转发至所述目标根节点。

本可选的实施例中,在各目标执行节点在任务执行完毕,获取到任务执行结果后,会将任务执行结果反馈至相邻的路由节点层中的目标路由节点,进一步的,以目标执行节点确定的目标路由节点为起点,通过各目标路由节点在相邻的上层路由节点层中确定至少一个目标路由节点,并将接收的执行结果向确定的目标路由节点转发,直至在与根节点层相邻的路由节点层中确定出目标路由节点,最终过与根节点层相邻的路由节点层中的各目标路由节点,在根节点层中确定目标根节点,并将接收的执行结果转发至所述目标根节点,以使根节点能够根据得到的任务执行结果执行后续事务性操作,例如,将任务执行结果存储至数据库。

可选的,本实施例中的树状分布架构的任务调度系统不仅可以在各层次中扩展节点,实现高并发的任务分发和处理,还能够通过垂直方向扩展,提升任务分配维度,实现任务的最优分配。

本实施例的技术方案,根据预设的分片规则,为根节点层中的各根节点分配对应的任务片区,然后由根节点层中的至少一个根节点,在任务中心中获取与各根节点所属任务片区对应的至少一个目标任务,进而根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点,最终通过各目标执行节点,执行所分配的目标任务,通过树状分布架构的任务调度系统进行任务调度,提升分配规则的维度,降低执行任务时的基础设置消耗。

实施例四

图4为本发明实施例四提供的一种任务调度装置的结构示意图,该任务调度装置,包括:目标任务获取模块410、目标任务转发模块420和目标任务执行模块430。

目标任务获取模块410,用于通过根节点层中的根节点在任务中心获取至少一个目标任务;

目标任务转发模块420,用于根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点;

目标任务执行模块430,用于通过各所述目标执行节点,执行所分配的所述目标任务。

本发明实施例的技术方案,通过根节点层中的根节点在任务中心获取至少一个目标任务,进而根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点,最终通过各目标执行节点,执行所分配的目标任务,解决了以为节点分布架构选择任务执行节点时具有随机性,无法控制基础设置消耗的问题,通过树状分布架构的任务调度系统进行任务调度,提升分配规则的维度,降低执行任务时的基础设置消耗。

可选的,所述任务调度装置,还包括:

任务片区分配模块,用于根据预设的分片规则,为所述根节点层中的各根节点分配对应的任务片区;

所述目标任务获取模块410,具体用于:

由根节点层中的至少一个根节点,在任务中心中获取与各根节点所属任务片区对应的至少一个目标任务。

可选的,目标任务转发模块420,包括:

第一目标路由节点确定单元,用于通过根节点根据获取到的各目标任务的属性信息,在与根节点相邻的路由节点层中确定至少一个目标路由节点,并各所述目标任务分发至各所述目标路由节点中;

第二目标路由节点确定单元,用于以根节点确定的目标路由节点为起点,通过各目标路由节点在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发,直至在与执行节点层相邻的路由节点层中确定出目标路由节点;

目标执行节点确定单元,用于通过与执行节点层相邻的路由节点层中的各目标路由节点,根据接收到的各目标任务的属性信息,在执行节点层中确定各所述目标执行节点,并将接收的各目标任务发送至各所述目标执行节点。

可选的,第一目标路由节点确定单元,具体用于:

通过根节点根据获取到的各目标任务的属性信息,确定各目标任务的一级任务特征值;

通过根节点根据所述一级任务特征值和与其相邻的路由节点层中至少一类路由节点对应的节点特征值,确定与所述一级任务特征值匹配的目标类路由节点,并在所述目标类路由节点中确定至少一个目标路由节点;

所述任务调度装置,还包括:

第一节点注册模块,用于通过与根节点相邻的路由节点层中的各路由节点,向所述根节点层注册节点特征值;

第一节点归类模块,用于通过根节点层,根据各路由节点的节点特征值,对各路由节点进行归类。

可选的,第二目标路由节点确定单元,具体用于:

通过所述各目标路由节点确定获取到的各目标任务的中间任务特征值;

通过所述目标路由节点根据所述中间任务特征值和与其相邻的下层路由节点层中至少一类路由节点对应的节点特征值,确定与所述中间任务特征值匹配的目标类路由节点,并在所述目标类路由节点中确定至少一个目标路由节点;

所述任务调度装置,还包括:

第二节点注册模块,用于通过各层路由节点层中的各路由节点,向相邻的上层路由节点层中注册节点特征值;

第二节点归类模块,用于通过接收到节点特征值的路由节点层,根据各下层路由节点的节点特征值,对各路由节点进行归类。

可选的,目标执行节点确定单元,具体用于:

通过与所述执行节点层相邻的目标路由节点确定获取到的各目标任务的二级任务特征值;

通过所述目标路由节点根据所述二级任务特征值和执行节点层中至少一类执行节点对应的节点特征值,确定与所述二级任务特征值匹配的目标类执行节点,并在所述目标类执行节点中确定至少一个目标执行节点;

所述任务调度装置,还包括:

第三节点注册模块,用于通过执行节点层中的各执行节点,向相邻的路由节点层注册节点特征值;

第三节点归类模块,用于通过与执行节点层相邻的路由节点层,根据各执行节点的节点特征值,对各执行节点进行归类。

可选的,第二目标路由节点确定单元,还具体用于:

通过目标路由节点检测自身所在的路由节点层是否为与执行节点层相邻的路由节点层,若否,则在相邻的下层路由节点层中确定至少一个目标路由节点,并将接收的目标任务向确定的目标路由节点转发。

可选的,所述任务调度装置,还包括:

状态获取请求发起模块,用于由所述根节点层中的至少一个根节点,以及至少一个路由节点层的至少一个路由节点,按照设定周期向相邻的下层节点发起节点状态获取请求;

状态反馈模块,用于当相邻的下层节点反馈的节点状态为不健康状态时,暂停向所述下层节点转发任务。

可选的,任务调度装置,还包括:

第一结果反馈模块,用于由所述目标执行节点将与所述目标任务的执行结果反馈至相邻的路由节点层中的目标路由节点;

第二任务反馈模块,用于以目标执行节点确定的目标路由节点为起点,通过各目标路由节点在相邻的上层路由节点层中确定至少一个目标路由节点,并将接收的执行结果向确定的目标路由节点转发,直至在与根节点层相邻的路由节点层中确定出目标路由节点;

第三任务反馈模块,用于通过与根节点层相邻的路由节点层中的各目标路由节点,在根节点层中确定目标根节点,并将接收的执行结果转发至所述目标根节点。

可选的,任务中心对应存储有任务状态,每个任务对应初始状态、执行状态、执行完毕状态以及超时状态中的其中一项;

目标任务获取模块410,具体用于:

通过根节点层中的根节点在任务中心中获取任务状态为初始状态或者超时状态的任务作为目标任务;

目标任务转发模块420,还包括:

状态修改单元,用于通过根节点将所述目标任务的任务状态修改为执行状态。

可选的,目标任务的属性信息包括下述至少一项:

目标任务所属的数据中心、目标任务所属的网络分区、目标任务对应的互联网协议IP地址以及任务编号。

可选的,第一目标路由节点确定单元,还具体用于:

通过根节点将获取到的各目标任务所属的数据中心作为各目标任务的一级任务特征值。

本发明实施例所提供的任务调度装置可执行本发明任意实施例所提供的任务调度方法,具备执行方法相应的功能模块和有益效果。

实施例五

图5为本发明实施例五提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器50和存储器51;设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;设备中的处理器50和存储器51可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种任务调度方法对应的程序指令/模块(例如,任务调度装置中的目标任务获取模块410、目标任务转发模块420和目标任务执行模块430)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行设备的各种功能应用以及任务调度,即实现上述的任务调度方法。

该方法应用于树状分布架构的任务调度系统,任务调度系统包括根节点层、至少一个路由节点层和执行节点层,包括:

通过根节点层中的根节点在任务中心获取至少一个目标任务;

根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点;

通过各所述目标执行节点,执行所分配的所述目标任务。

存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实施例六

本发明实施例六还提供一种其上存储有计算机程序的计算机可读存储介质,所述计算机程序在由计算机处理器执行时用于执行一种任务调度方法,该方法包括:

该方法应用于树状分布架构的任务调度系统,任务调度系统包括根节点层、至少一个路由节点层和执行节点层,包括:

通过根节点层中的根节点在任务中心获取至少一个目标任务;

根据各目标任务的属性信息,采用在每个路由节点层中分别确定的至少一个目标路由节点,将各目标任务逐层转发至执行节点层中的各目标执行节点;

通过各所述目标执行节点,执行所分配的所述目标任务。

当然,本发明实施例所提供的包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的任务调度方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,应用服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述一种任务调度装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 任务调度方法、任务调度装置、任务调度设备及存储介质
  • 任务调度方法、任务调度装置及存储介质
技术分类

06120112923433