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

技术领域

本发明涉及任务调度技术领域,具体涉及一种任务调度方法、装置及电子设备。

背景技术

任务调度指的是服务器将接收到的多个待处理任务合理分发至若干个任务处理器;换句话说,任务调度指的是服务器基于各个任务处理器的负荷状态将接收到的多个待处理任务划分成若干个待处理任务集合,以及将各个待处理任务集合分发至对应的任务处理器。

目前的任务调度方式存在无法保证多个任务处理器均衡负载的问题。

综上,亟待需要一种可有效保证多个任务处理器之间的均衡负载的任务调度方法、装置及电子设备。

发明内容

本发明的目的是针对现有技术中存在的上述问题,提供了一种任务调度方法、装置及电子设备。

为了实现上述发明目的,本发明采用了以下技术方案:一种任务调度方法包括以下调度步骤:

S1000:获取多个待处理任务;

S2000:基于任务分发策略将所述待处理任务划分成多个待处理任务集合;

S3000:将所述待处理任务集合发送至多个任务处理器,其中每个所述任务处理器与每个待处理任务集合一一对应。

工作原理及有益效果:1、现有技术主要是对于单个处理设备或单个处理器先进行负载状态判断,然后根据设定的阈值来调度任务,只有达到设定值才能请求任务,需要对每个处理器进行实时的监测,额外的处理运算负担较大,且调度能力差,本方案先确定划分好每个待处理的任务集合,再根据分配到每个任务处理器上,可无需对每个处理器实时监测,额外的处理运输负担小,调度能力好,可快速进行任务分配,从而保证多个任务处理器的负载均衡;

2、本方案在待处理任务较多的时候,可分批次循环执行本方案中的任务分发策略,再进行统一分配,保证最大程度地利用好每个任务处理器,杜绝资源浪费,而现有技术需要不断地判断,处理效率太低,且一旦待处理任务数量过多,运算负担更大,很容易导致卡死或宕机的情况发生

3、每个待处理任务集合和任务处理器的数量一一对应的设置,可更方便对总的待处理任务进行分类,尤其是可根据每个任务处理器的特性和处理任务类型进行分配,可操控的空间大,因此能够更好地协调各任务处理器之间的负载情况,起到更好的负载均衡。

进一步地,获取多个待处理任务的具体步骤如下:

S1100:向任务存储中心发送携带目标时段的未处理任务查询请求;

S1200:接收所述任务存储中心发送的所有所述未处理任务;

S1300:确认所有未处理任务为多个所述待处理任务。

上述步骤可实现一次或多次任务请求,只需要按照所有任务处理器的处理能力来定时获取任务请求即可,可减少每个处理器处于过载的情况,显著减少任务处理器过热宕机的情况发生,且对于任务处理的时间影响几乎可以忽略,因为新的任务也需要等待在先的任务完成。

进一步地,步骤S2000中,所述任务分发策略包括任务处理器负荷策略、任务处理器任务等级策略及任务处理器任务状况策略的其中一种或多种。通过多种策略组合进行分发,任务分配效果更好。

进一步地,所述任务处理器负荷策略包括以下步骤:

S2110:分别获取每个所述任务处理器的负荷状态,其中所述任务处理器的负荷状态表示该任务处理器当前还可以再处理的待处理任务的数量;

S2120:对比每个所述任务处理器的负荷状态确定待分配待处理任务的分发比例;

S2130:根据所有任务处理器的负荷状态比例关系分配所述待分配待处理任务,形成与每个所述任务处理器一一对应的待处理任务集合。

上述步骤,基于每个任务处理器的负荷状态来分配待处理的任务,可保证每个任务处理器在分配后的负载均衡,显著提高每个任务处理器的利用率,提高处理效率。

进一步地,所述任务处理器任务等级策略包括以下步骤:

S2210:获取每个所述任务处理器的任务等级,其中所述任务处理器的任务等级表示该任务处理器处理的待处理任务的重要程度;

S2220:根据每个所述任务处理器的任务等级确定每个待分配待处理任务的任务等级;

S2230:根据每个所述任务处理器的任务等级分配同级的所述待分配待处理任务,形成与所述任务处理器一一对应的待处理任务集合。

上述步骤,尤其是对于任务处理器先根据处理的任务等级进行划分,然后再划分获取的所有未分配待处理任务,将这些任务也按照任务等级进行划分,再分配到对应等级的任务处理器上即可,可更好地应用到多种型号的任务处理器,每种型号的任务处理器可专门高效地处理一些等级的任务,当然也能够处理其他等级的任务,只不过处理效率不高,因此上述步骤可更好地解决此种场景存在的不能均衡负载的问题。

进一步地,所述任务处理器任务状况策略包括以下步骤:

S2310:划分待处理任务的紧急程度等级;

S2320:获取每个所述任务处理器的任务状况,其中所述任务处理器的任务状态表示该任务处理器处理的待处理任务的紧急程度等级;

S2330:根据每个所述任务处理器的任务状况确定同样紧急程度等级的待分配待处理任务;

S2340:根据每个所述任务处理器中任务状况的紧急程度等级分配同级的所述待分配待处理任务,形成与所述任务处理器一一对应的待处理任务集合。

上述步骤,同样是先对任务处理器进行紧急程度等级分级,再对获取的未分配待处理任务进行紧急程度分级,然后将分级好的待处理任务分到对应的同级任务处理器即可,尤其适合应用在每个任务处理器性能参差不齐的场景,对于性能强的处理器可安排紧急任务,性能弱的安排不急的任务,这样可在性能程度上均衡负载,使得每个任务处理器所需要的处理时间或者处理效率更好地保持一致水平,起到了更好地均衡负载效果。

进一步地,确定所述任务处理器的负荷状态包括以下步骤:

S2111:至少获取每个所述任务处理器的当前CPU使用率、当前内存占用率、当前网络速率及当前任务进程数量;

S2112:根据预存的CPU使用率与分数的映射关系确定当前CPU使用率对应的第一分数;

S2113:根据预存的内存占用率与分数的映射关系确定当前内存占用率对应的第二分数;

S2114:根据预存的网络速率与分数的映射关系确定当前网络速率对应的第三分数;

S2115:根据预存的任务进程数量与分数的映射关系确定当前任务进程数量对应的第四分数;

S2116:根据第一分数、第二分数、第三分数、第四分数以及预存的负荷分数公式确定目标负荷分数;

其中,负荷分数公式如下:

P=A1×α1+A2×α2+A3×α3+A4×α4,

P为目标负荷分数,A1为当前CPU使用率对应的分数,α1为CPU使用率对应的权重,A2为当前内存占用率对应的分数,α2为内存占用率对应的权重,A3为当前网络速率对应的分数,α3为网络速率对应的权重,A4为当前任务进程数量对应的分数,α4为任务进程数量对应的权重,α1+α2+α3+α4=1;

S2117:根据预存的负荷分数与仍能处理任务数量的映射关系确定目标负荷分数对应的目标仍能处理任务数量。

上述步骤,通过对每个任务处理器的各方面硬件参数进行加权计算,从而得出当前每个任务处理器的负荷分数,将任务处理器的负荷进行量化,从而更方便更直观地看出每个任务处理器的负荷状态,有利于待处理任务的分配。

进一步地,所述任务等级分配方式包括以下步骤:

S2211:获取每个所述待处理任务的任务创建时刻;

S2212:根据每个所述待处理任务的任务创建时刻按照先后顺序将多个所述待处理任务进行排序,得到待处理任务序列;

S2213:根据所述任务处理器数量划分所述待处理任务序列的等级,其中所述待处理任务序列的等级阶数与所述任务处理器数量相同;

S2214:根据每个所述待处理任务的任务等级将所有待处理任务划分为多个待处理任务集合。

上述步骤,主要是将所有任务按照时间进行排序,然后按照任务处理器的数量进行分段,也就是任务等级分级,例如前面的为高等级,中间的为中等级,最后的为等级,分别对应高中低三个任务处理器,因此对于待处理任务只需要考虑先来后到原则时,比如后序命令需要前序命令先执行得到结构才能执行的方式,让后序命令先预测前序命令的结构进行计算,如果前序命令得出的结构与后序命令一致则直接用后序命令执行的结果,因此相比顺序执行的方式,可显著提高处理速度,也起到了更好地均衡负载的情况,避免有的处理器“偷懒”的情况发生。

一种任务调度装置包括获取模块、划分模块、存储模块及分配模块;

所述获取模块用于向存储模块或任务存储中心获取多个待处理任务;

所述存储模块用于存储任务分发策略和待处理任务;

所述划分模块用于根据任务分发策略将所述待处理任务划分成多个待处理任务集合;

所述分配模块用于将所述待处理任务集合发送至多个任务处理器,其中每个所述任务处理器与每个待处理任务集合一一对应。

采用上述任务调度装置,可直接运用在各个场景中,如安装于服务器等,起到均衡负载的作用。

一种任务调度电子设备包括处理器和存储器;所述处理器用于执行上述的一种任务调度方法;所述存储器用于存储任务分发策略、待处理任务以及处理器可执行的机器可读指令。

采用上述的任务调度电子设备,可对网络中心或分布式计算系统中的每个处理单元进行任务调度,从而起到减少资源浪费,提高整个网络的计算效率的功能。

附图说明

图1是本发明的流程示意图;

图2是本发明一种应用例的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术人员应理解的是,在本发明的披露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。

实施例1:

请参阅图1,本任务调度方法应用于服务器,该方法包括如下步骤:

S1000、服务器获得多个待处理任务。

获得多个待处理任务的方式包括以下步骤:

S1100、服务器向任务存储中心发送携带目标时段的待处理任务查询请求,待处理任务查询请求用于指示任务存储中心反馈在目标时段内的所有待处理任务;

S1200、服务器接收任务存储中心发送的在目标时段内的所有待处理任务;

S1300、服务器将在目标时段内的所有待处理任务确定为多个待处理任务。

S2000、服务器基于任务分发策略将多个待处理任务划分成若干个待处理任务集合,任务分发策略用于将多个待处理任务合理分发至若干个任务处理器。

其中,任务分发策略预先存储于服务器。任务分发策略包括任务处理器负荷策略、任务处理器任务等级策略及任务处理器任务状况策略的其中一种或多种。通过多种策略组合进行分发,任务分配效果更好。

优选地,任务分发策略还可以包括考虑任务等级大的任务处理器分担任务处理器小的部分待处理任务的情况。考虑一个任务处理器处理紧急任务+多个任务处理器处理非紧急任务的情况;考虑多个任务处理器先采用并行方式处理紧急任务,后采用并行方式处理非紧急任务的情况。考虑将多个待处理任务按任务分类合理分发至若干个任务处理器的情况等上述情况。

其中,服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵、服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:CPU、硬盘、内存,系统、系统总线等。

S3000、服务器将若干个待处理任务集合发送至若干个任务处理器,若干个任务处理器与若干个待处理任务集合一一对应。

其中服务器将若干个待处理任务集合发送至若干个任务处理器的方式,可以包括以下方式:

服务器依次将若干个待处理任务集合发送至若干个任务处理器;或者服务器采用并行方式将若干个待处理任务集合发送至若干个任务处理器。

可以看出,相较于服务器先将一部分待处理任务(任务处理器A当前还可以再处理的待处理任务)分发至任务处理器A,再将另一部分待处理任务(任务处理器B当前还可以再处理的待处理任务)分发至任务处理器B,后将剩下待处理任务(少于任务处理器C当前还可以再处理的待处理任务)分发至任务处理器C,无法保证多个任务处理器的负载均衡。在本发明实施例中,服务器基于任务分发策略将接收到的多个待处理任务划分成若干个待处理任务集合,以及将各个待处理任务集合分发至对应的任务处理器,从而实现将多个待处理任务合理分发至若干个任务处理器,这样能够保证多个任务处理器的负载均衡。

如果待处理任务的数量过多,那么分批次循环执行第一种服务器基于任务分发策略将多个待处理任务划分成若干个待处理任务集合的方式,以及将各个待处理任务集合分发至对应的任务处理器的操作,以完成待处理任务的调度;或者,循环执行将待处理任务集合分批次分发至对应的任务处理器的操作,已完成待处理任务的调度。

实施例2:

任务处理器负荷策略包括以下步骤:

假设若干个任务处理器包括任务处理器A、任务处理器B和任务处理器C。

S2110、服务器获得任务处理器A的负荷状态、任务处理器B的负荷状态和任务处理器C的负荷状态;

其中,任务处理器的负荷状态指的是该任务处理器当前还可以再处理的待处理任务的数量。

具体地,确定任务处理器的负荷状态包括以下四个步骤:

S2111、获得任务处理器的当前CPU使用率、当前内存、当前网络速率、当前任务数量;

S2112、根据预存的CPU使用率与分数的映射关系确定当前CPU使用率对应的第一分数;根据预存的内存与分数的映射关系确定当前内存对应的第二分数;根据预存的网络速率与分数的映射关系确定当前网络速率对应的第三分数;根据预存的任务数量与分数的映射关系确定当前任务数量对应的第四分数;

S2113、根据第一分数、第二分数、第三分数、第四分数以及预存的负荷分数公式确定目标负荷分数;

其中,负荷分数公式如下:

P=A1×α1+A2×α2+A3×α3+A4×α4,

P为目标负荷分数,A1为当前CPU使用率对应的分数,α1为CPU使用率对应的权重,A2为当前内存对应的分数,α2为内存对应的权重,A3为当前网络速率对应的分数,α3为网络速率对应的权重,A4为当前任务数量对应的分数,α4为任务数量对应的权重;其中,α1+α2+α3+α4=1。

S2114、根据预存的负荷分数与仍能处理任务数量的映射关系确定目标负荷分数对应的目标仍能处理任务数量。

其中,服务器依次获得任务处理器A的负荷状态、任务处理器B的负荷状态和任务处理器C的负荷状态;或者,服务器采用并行方式获得任务处理器A的负荷状态、任务处理器B的负荷状态和任务处理器C的负荷状态。

S2120、服务器根据任务处理器A的负荷状态、任务处理器B的负荷状态和任务处理器C的负荷状态确定多个待处理任务的分发比例;

如果任处理器A的负荷状态为50、任务处理器B的负荷状态为45和任务处理器C的负荷状态为45,那么服务器确定多个待处理任务的分发比例为10:9:9。

S2130、服务器根据多个待处理任务的分发比例将多个待处理任务划分成三个待处理任务集合。

如果多个待处理任务的分发比例为10:9:9,且多个待处理任务的数量为112,那么服务器将该112个待处理任务划分成待处理任务集合A(40个待处理任务)、待处理任务集合B(36个待处理任务)和待处理任务集合C(36个待处理任务)。

可见,在本实施例中,服务器基于各个任务处理器的负荷状态确定多个待处理任务的分发比例,基于多个待处理任务的分发比例将多个待处理任务划分成若干个待处理任务集合,进而将各个待处理任务集合分发至对应的任务处理器,从而实现将多个待处理任务按任务数量均匀分发至若干个任务处理器,这样能够保证多个任务处理器的负载均衡。

实施例3:

任务处理器任务等级策略包括以下步骤:

假设若干个任务处理器包括任务处理器A、任务处理器B和任务处理器C。

S2210、服务器获得任务处理器A的任务等级、任务处理器B的任务等级和任务处理器C的任务等级;其中,任务处理器A的任务等级、任务处理器B的任务等级与任务处理器C的任务等级互不相同;

其中,任务处理器的任务等级指的是该任务处理器处理的待处理任务的重要程度。

其中,任务处理器的任务等级可以包括高、中和低,在此不作限定。

其中,服务器依次获得任务处理器A的任务等级、任务处理器B的任务等级和任务处理器C的任务等级;或者,服务器采用并行方式获得任务处理器A的任务等级、任务处理器B的任务等级和任务处理器C的任务等级。

S2220、服务器根据任务处理器A的任务等级、任务处理器B的任务等级和任务处理器C的任务等级确定多个待处理任务中的每个待处理任务的任务等级;

具体地,服务器根据任务处理器A的任务等级、任务处理器B的任务等级和任务处理器C的任务等级确定多个待处理任务中的每个待处理任务的任务等级的方式可以包括以下步骤:

S2211、服务器获取多个待处理任务中的每个待处理任务的任务创建时刻;

S2212、服务器根据每个待处理任务的任务创建时刻按照先后顺序将多个待处理任务进行排序,得到待处理任务序列;

S2213、服务器将待处理任务序列的前三分之一待处理任务的任务等级均设置为低,将待处理任务序列的中三分之一待处理任务的任务等级均设置为中,将待处理任务序列的后三分之一待处理任务的任务等级均设置为高。

S2230、服务器根据每个待处理任务的任务等级将多个待处理任务划分成三个待处理任务集合。

如果多个待处理任务的数量为120,且40个待处理任务的任务等级均为高、40个待处理任务的任务等级均为中和40个待处理任务的任务等级均为低,那么服务器将该120个待处理任务划分成待处理任务集合A(任务等级相同的40个待处理任务)、待处理任务集合B(任务等级相同的40个待处理任务)和待处理任务集合C(任务等级相同的40个待处理任务)。

可见,在本实施例,服务器基于任务处理器A的任务等级、任务处理器B的任务等级和任务处理器C的任务等级确定各个待处理任务的任务等级,基于各个待处理任务的任务等级将多个待处理任务划分成若干个待处理任务集合,进而将各个待处理任务集合分发至对应的任务处理器,从而实现将多个待处理任务按任务等级合理分发至若干个任务处理器,这样能够保证多个任务处理器的负载均衡。

实施例4:

任务处理器任务状况策略包括以下步骤:

假设若干个任务处理器包括任务处理器A、任务处理器B和任务处理器C。

S2310、服务器获得任务处理器A的任务状况、任务处理器B的任务状况和任务处理器C的任务状况;其中,任务处理器A的任务状况、任务处理器B的任务状况与任务处理器C的任务状况互不相同;

其中,任务处理器的任务状况指的是该任务处理器处理的待处理任务的紧急程度。

其中,任务处理器A的任务状况可以为紧急,任务处理器B的任务状况可以为较紧急,任务处理器C的任务状况可以为不紧急。

其中,服务器依次获得任务处理器A的任务状况、任务处理器B的任务状况和任务处理器C的任务状况;或者,服务器采用并行方式获得任务处理器A的任务状况、任务处理器B的任务状况和任务处理器C的任务状况。

S2320、服务器获取多个待处理任务中的每个任务的任务状况;

其中,任务的任务状况可以是预先设置的。

S2330、服务器从多个待处理任务中选取任务状况均为紧急的至少一个待处理任务构成与任务处理器A对应的待处理任务集合,从多个待处理任务中选取任务状况均为较紧急的至少一个待处理任务构成与任务处理器B对应的待处理任务集合,从多个待处理任务中选取任务状况均为不紧急的至少一个待处理任务构成与任务处理器C对应的待处理任务集合。

可见,在本实施例,服务器从多个待处理任务中选取与任务处理器A的任务状况相同的至少一个待处理任务构成第一待处理任务集合,从多个待处理任务中选取与任务处理器B的任务状况相同的至少一个待处理任务构成第二待处理任务集合,从多个待处理任务中选取与任务处理器C的任务状况相同的至少一个待处理任务构成第三待处理任务集合,进而将各个待处理任务集合分发至对应的任务处理器,从而实现将多个待处理任务按任务状况合理分发至若干个任务处理器,这样能够保证多个任务处理器的负载均衡。

实施例5:

本任务调度方法的一种应用场景,包括服务器和若干个任务处理器,服务器分别与若干个任务处理器均建立通信连接,其中:

服务器,用于获得多个待处理任务。

服务器,还用于基于任务分发策略将多个待处理任务划分成若干个待处理任务集合,任务分发策略用于将多个待处理任务合理分发至若干个任务处理器。

服务器,还用于将若干个待处理任务集合发送至若干个任务处理器,若干个任务处理器与若干个待处理任务集合一一对应。

任务处理器,用于接收服务器发送的待处理任务集合。

任务处理器,还用于对待处理任务集合执行处理操作。

其中,任务处理器可以为移动终端,在此不作限定。

移动终端或者叫移动通信终端,是指可以在移动中使用的计算机设备,广义的讲包括手机、笔记本、平板电脑、POS机甚至包括车载电脑。但是大部分情况下是指手机或者具有多种应用功能的智能手机以及平板电脑。随着网络和技术朝着越来越宽带化的方向的发展,移动通信产业将走向真正的移动信息时代。另一方面,随着集成电路技术的飞速发展,移动终端的处理能力已经拥有了强大的处理能力,移动终端正在从简单的通话工具变为一个综合信息处理平台。这也给移动终端增加了更加宽广的发展空间。

移动终端作为简单通信设备伴随移动通信发展已有几十年的历史。自2007年开始,智能化引发了移动终端基因突变,从根本上改变了终端作为移动网络末梢的传统定位。移动智能终端几乎在一瞬之间转变为互联网业务的关键入口和主要创新平台,新型媒体、电子商务和信息服务平台,互联网资源、移动网络资源与环境交互资源的最重要枢纽,其操作系统和处理器芯片甚至成为当今整个ICT产业的战略制高点。移动智能终端引发的颠覆性变革揭开了移动互联网产业发展的序幕,开启了一个新的技术产业周期。随着移动智能终端的持续发展,其影响力将比肩收音机、电视和互联网(PC),成为人类历史上第4个渗透广泛、普及迅速、影响巨大、深入至人类社会生活方方面面的终端产品。

其中,上图仅以第一任务处理器、第二任务处理器和第三任务处理器作示例性说明,不应理解为仅有三个任务处理器;在实际应用中,可能存在多个任务处理器。

一种任务调度装置包括获取模块、划分模块、存储模块及分配模块;

获取模块用于向存储模块或任务存储中心获取多个待处理任务;

存储模块用于存储任务分发策略和待处理任务;

划分模块用于根据任务分发策略将待处理任务划分成多个待处理任务集合;

分配模块用于将待处理任务集合发送至多个任务处理器,其中每个任务处理器与每个待处理任务集合一一对应。

采用上述任务调度装置,可直接运用在各个场景中,如安装于服务器等,起到均衡负载的作用。

一种任务调度电子设备包括处理器和存储器;处理器用于执行上述的一种任务调度方法;存储器用于存储任务分发策略、待处理任务以及处理器可执行的机器可读指令。

采用上述的任务调度电子设备,可对网络中心或分布式计算系统中的每个处理单元进行任务调度,从而起到减少资源浪费,提高整个网络的计算效率的功能。

本发明未详述部分为现有技术,故本发明未对其进行详述。

可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。

尽管本文较多地使用了等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。

本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。

相关技术
  • 任务调度方法、任务调度装置、任务调度设备及存储介质
  • 任务调度处理方法、装置、服务器、客户端及电子设备
技术分类

06120112722987