一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源调度方法、装置、计算机设备和存储介质与流程

2023-02-02 01:40:58 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种资源调度方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.分布式计算面对的计算任务庞大,任务调度和资源分配问题成为分布式计算效率的关键。将众多不同的任务请求进行合理有效地调度,让有限的分布式节点资源发挥最大的效能,满足用户对服务质量的需求是整个分布式计算领域亟待解决的难题。
3.传统技术中,通常按照任务的时间顺序进行任务执行,或根据多个任务执行机分别执行待执行任务所需的资源,派发待执行任务至多个任务执行机中的一个。
4.然而,当某个大任务长时间占用过多执行机的情况下,若存在某个较为紧急的任务到来,但是资源又被其他不紧急的任务占用时,紧急任务就会因为任务堵塞而得不到资源,无法在规定时间内完成测试任务。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够减少执行机资源浪费,提高执行机的利用效率的资源调度方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种资源调度方法。所述方法包括:
7.获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列;
8.查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾;
9.轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。
10.在其中一个实施例中,基于多个任务的获取时间与优先级确定多个任务的等待顺序,包括:
11.获取多个任务的获取时间与优先级;
12.基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到等待优先级排序;
13.针对等待优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;
14.基于等待优先级排序与时间排序,确定多个任务的等待顺序。
15.在其中一个实施例中,查询等待队列中队首任务对应的执行机需求数量,确定队
首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,包括:
16.查询等待队列中队首任务对应的执行机的最小需求数量,并实时获取执行机空闲数量;
17.当最小需求数量大于执行机空闲数量时,获取执行队列队尾任务的优先级和等待队列中队首任务的优先级;
18.当等待队列中队首任务的优先级大于执行队列队尾任务的优先级时,将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列。
19.在其中一个实施例中,在将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列之后,还包括:
20.释放执行队列队尾任务所得执行机,将释放的执行机分配给转入执行队列的等待队列中队首任务。
21.在其中一个实施例中,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,还包括:
22.当最小需求数量小于或等于执行机空闲数量时,将等待队列中队首任务转入执行队列,基于最小需求数量,分配对应数量的执行机给转入执行队列的等待队列中队首任务。
23.在其中一个实施例中,轮询执行队列中多个任务对应的执行机需求数量之前,还包括:
24.获取执行队列中多个任务的获取时间与优先级;
25.基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到执行优先级排序;
26.针对执行优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;
27.基于执行优先级排序与时间排序,确定多个任务的执行顺序;
28.按照执行顺序对执行队列进行排序。
29.在其中一个实施例中,轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行队列中每一任务的执行机数量,包括:
30.按照执行顺序,轮询执行队列中多个任务对应的初始分配执行机数量与执行机推荐数量,并实时获取执行机空闲数量;
31.针对执行队列中每个任务,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量。
32.在其中一个实施例中,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量,包括:
33.当初始分配执行机数量大于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第一差值,对任务释放等于第一差值数量的执行机;
34.当初始分配执行机数量小于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第二差值;
35.当第二差值小于或等于执行机空闲数量时,对任务追加分配等于第二差值数量的执行机;
36.当第二差值大于执行机空闲数量时,将所有空闲的执行机分配给任务。
37.第二方面,本技术还提供了一种资源调度装置。所述装置包括:
38.等待队列确定模块,用于获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列;
39.队列调整模块,用于查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾;
40.执行机分配模块,用于轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。
41.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
42.第四方面,本技术还提供了一种计算机设备可读存储介质。所述计算机设备可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述方法的步骤。
43.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述方法的步骤。
44.上述资源调度方法、装置、计算机设备、存储介质和计算机程序产品,首先获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列。然后,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾。最后,轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。本技术基于优先级与时间调整等待队列与执行队列的任务,再基于执行机空闲数量与任务需求执行机数量按需分配,可以减少执行机资源浪费,提高执行机的利用效率。
附图说明
45.图1为一个实施例中资源调度方法的应用环境图;
46.图2为一个实施例中资源调度方法的流程示意图;
47.图3为一个实施例中等待队列与执行队列中任务调整的流程示意图;
48.图4为另一个实施例中执行机数量分配方法的流程示意图;
49.图5为一个实施例中资源调度装置的结构框图;
50.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
52.本技术实施例提供的资源调度方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储分析系统需要处理的数据。数据存储系统可以集成在服务器上,也可以放在云上或其他网络服务器上。首先,服务器104获取多个终端102建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列。然后,服务器104查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾。最后,服务器104轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。本技术基于优先级与时间调整等待队列与执行队列的任务,再基于执行机空闲数量与任务需求执行机数量按需分配,可以减少执行机资源浪费,提高执行机的利用效率。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
53.本技术实施例提供的资源调度方法,可以应用于服务器或终端单侧实现,也可以应用于包括终端和服务器的系统,通过终端设备和服务器的交互实现。
54.在一个实施例中,如图2所示,提供了一种资源调度方法,以该方法应用于图1中的服务端侧为例进行说明,包括以下步骤202至步骤206。
55.步骤202,获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列。
56.在本实施例中,可以通过前端创建任务,服务器获取多个任务时,还可以关联多个历史案例。其中,历史案例中可以包括但不限于:多个历史任务及历史任务所分配的到的执行机数量。
57.在本实施例中,任务所在的队列分为等待队列和执行队列。其中,等待队列中任务的状态为等待状态,执行队列中任务的状态为执行状态。
58.在本实施例中,服务器还可以获取多个任务的配置信息,该配置信息可以包括但不限于:已执行完成的案例信息、正在执行(执行状态)中的案例信息和未执行(等待状态)的案例信息。其中,案例信息至少包括任务数量,例如,未执行(等待状态)的案例信息至少包括当前等待队列中的任务信息(如:数量)。
59.在本实施例中,用户通过终端建立任务时,可以设定任务执行的最晚开始时间。服务器可以基于该最晚开始时间确定多个任务的优先级。
60.步骤204,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾。
61.在本实施例中,当执行队列为空时,按照等待顺序将多个等待队列中的任务加入执行队列。
62.在本实施例中,当执行队列和等待队列都不为空时,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件(如:队首任务对应的执行机的需求数量小于或等于执行机空闲数量)时,将队首任务转入执行队列的队尾。
63.在另一个实施例中,当等待队列中队首任务对应的执行机需求数量与执行机空闲数量的数量关系满足预设条件时,服务器还可以查询该等待队列中队首任务的优先级和执行队列中队尾任务的优先级,当等待队列中队首任务的优先级高于执行队列中队尾任务的优先级时,将等待队列中队首任务转入执行队列的队尾。
64.在本实施例中,等待队列中队首任务转入执行队列的队尾的同时,服务器还可以将执行队列的队尾任务转入等待队列。
65.在本实施例中,如图3所示,当等待队列中队首任务对应的执行机需求数量与执行机空闲数量的数量关系不满足预设条件(抢占条件)时,服务器对执行队列和等待队列中的任务不作调整。
66.步骤206,轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。
67.在本实施例中,执行队列中的多个任务拥有至少一个初始分配执行机。
68.在本实施例中,服务器可以轮询执行队列中多个任务对应的执行机推荐数量以及初始分配执行机数量,基于该执行机推荐数量和初始分配执行机数量的数量关系,确定执行队列中多个任务对应的执行机需求数量。其中,该执行机需求数量可以为负数。例如,当一任务的执行机推荐数量为3,初始分配执行机数量为5,那么,该任务对应的执行机需求数量为-2。
69.在本实施例中,用户通过终端建立任务时,可以设定任务执行所对应的执行机的最小需求数量和执行机推荐数量。
70.上述资源调度方法中,首先获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列。然后,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾。最后,轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。本技术基于优先级与时间调整等待队列与执行队列的任务,再基于执行机空闲数量与任务需求执行机数量按需分配,可以减少执行机资源浪费,提高执行机的利用效率。
71.在一些实施例中,基于多个任务的获取时间与优先级确定多个任务的等待顺序,可以包括:获取多个任务的获取时间与优先级;基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到等待优先级排序;针对等待优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;基于等待优先级排序与时间排序,确定多个任务的等待顺序。
72.在本实施例中,当服务器将执行队列的队尾任务转入等待队列,或者等待队列中出现新获取到的任务时,服务器可以基于任务的获取时间和优先级,对等待队列重新排序。
73.在一些实施例中,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,可以包括:查询等待队列中队首任务对应的执行机的最小需求数量,并实时获取执行机空闲数量;当最小需求数量大于执行机空闲数量时,获取执行队列队尾任务的优先级和等待队列中队首任务的优先级;当等待队列中队首任务的优先级大于执行队列队尾任务的优先级时,将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列。
74.在本实施例中,如图3所示,服务器可以查询等待队列中队首任务对应的执行机的最小需求数量,当该队首任务对应的执行机的最小需求数量小于或等于执行机空闲数量时,满足抢占条件,将队首任务转入执行队列的队尾。
75.在本实施例中,当服务器将等待队列中队首任务转入执行队列时,该队首任务的任务状态由等待状态更改为执行状态,当服务器将执行队列的队尾任务转入等待队列时,该队尾任务的任务状态由执行状态更改为等待状态。
76.在一些实施例中,在将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列之后,还可以包括:释放执行队列队尾任务所得执行机,将释放的执行机分配给转入执行队列的等待队列中队首任务。
77.在本实施例中,当执行队列队尾任务转入等待队列并释放所得执行机后,服务器还可以查询该队尾任务对应的执行机的最小需求数量和当前执行机空闲数量。当该队尾任务对应的执行机的最小需求数量小于或等于当前执行机空闲数量时,分配与该队尾任务对应的执行机的最小需求数量等同数量的执行机给该队尾任务。
78.在一些实施例中,查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,还可以包括:当最小需求数量小于或等于执行机空闲数量时,将等待队列中队首任务转入执行队列,基于最小需求数量,分配对应数量的执行机给转入执行队列的等待队列中队首任务。
79.在本实施例中,在将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列之后,服务器释放执行队列队尾任务所得执行机,但并未全部分配给转入执行队列的等待队列中队首任务。
80.在本实施例中,由于等待队列中队首任务转入执行队列的前提条件为:等待队列中队首任务的执行机的最小需求数量小于或等于执行机空闲数量,因此,在等待队列中队首任务转入执行队列时,服务器可以分配数量等同于该最小需求数量的执行机给该队首任务。
81.在一些实施例中,轮询执行队列中多个任务对应的执行机需求数量之前,还可以包括:获取执行队列中多个任务的获取时间与优先级;基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到执行优先级排序;针对执行优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;基于执行优先级排序与时间排序,确定多个任务的执行顺序;按照执行顺序对执行
队列进行排序。
82.在本实施例中,当执行队列中队尾任务转入等待队列后,该队尾任务的优先级可以升高一级。
83.在本实施例中,服务器将等待队列中队首任务转入执行队列后,可以基于任务的获取时间和优先级,对执行队列重新排序。
84.在一些实施例中,轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行队列中每一任务的执行机数量,可以包括:按照执行顺序,轮询执行队列中多个任务对应的初始分配执行机数量与执行机推荐数量,并实时获取执行机空闲数量;针对执行队列中每个任务,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量。
85.在本实施例中,服务器可以轮询执行队列中多个任务对应的执行机推荐数量以及初始分配执行机数量,将该执行机推荐数量和初始分配执行机数量的差值(执行机推荐数量减去初始分配执行机数量),确定执行队列中多个任务对应的执行机需求数量。其中,该执行机需求数量可以为负数。例如,当一任务的执行机推荐数量为3,初始分配执行机数量为5,那么,该任务对应的执行机需求数量为-2。
86.在本实施例中,服务器可以基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。其中,执行执行队列中每一任务的执行机数量为初始分配执行机数量与上述执行机需求数量的和。例如,当一任务的初始分配执行机数量为5,任务对应的执行机需求数量为-2,当前执行机空闲数量为4时,服务器确定该任务的执行机数量为初始分配执行机数量(5)与任务对应的执行机需求数量(-2)的和,即3,此时服务器将释放该任务对应的2个执行机,使释放的2个执行机从执行状态变为空闲状态。当一任务的初始分配执行机数量为5,任务对应的执行机需求数量为1,当前执行机空闲数量为4时,服务器确定该任务的执行机数量为初始分配执行机数量(5)与任务对应的执行机需求数量(1)的和,即6,此时服务器从空闲的4个执行机中分配1个执行机给该任务,使该任务对应的执行机数量变为6,并将分配给该任务的执行及状态从空闲状态变为执行状态。
87.在一些实施例中,如图4所示,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量,可以包括:当初始分配执行机数量大于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第一差值,对任务释放等于第一差值数量的执行机;当初始分配执行机数量小于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第二差值;当第二差值小于或等于执行机空闲数量时,对任务追加分配等于第二差值数量的执行机;当第二差值大于执行机空闲数量时,将所有空闲的执行机分配给任务。
88.在本实施例中,服务器可以基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量(第一差值)。其中,执行执行队列中每一任务的执行机数量为初始分配执行机数量与上述执行机需求数量的和。其中,当初始分配执行机数量大于执行机推荐数量时,执行机需求数量等同第一差值;当始分配执行机数量小于或等于执行机推荐数量时,执行机需求数量等同第二差值。
89.在本实施例中,当初始分配执行机数量大于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第一差值,对任务释放等于第一差值数量的执行机。例如,当一任务的初始分配执行机数量为5,执行机推荐数量为3,则任务对应的执行机需求数量(第一差值)为-2,此时服务器将释放该任务对应的2个执行机,使释放的2个执行机从执行状态变为空闲状态。
90.在本实施例中,当初始分配执行机数量小于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第二差值;当第二差值小于或等于执行机空闲数量时,对任务追加分配等于第二差值数量的执行机;当第二差值大于执行机空闲数量时,将所有空闲的执行机分配给任务。例如,当一任务的初始分配执行机数量为5,执行机推荐数量为7,则任务对应的执行机需求数量(第二差值)为2。此时,若当前执行机空闲数量大于或等于2时,服务器对任务追加分配等于第二差值数量的执行机;若当前执行机空闲数量小于2,则服务器将当前所有空闲的执行机分配给该任务。
91.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
92.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的资源调度方法的资源调度装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个资源调度装置实施例中的具体限定可以参见上文中对于资源调度方法的限定,在此不再赘述。
93.在一个实施例中,如图5所示,提供了一种资源调度装置,包括:等待队列确定模块502、队列调整模块504和执行机分配模块506,其中:
94.等待队列确定模块502,用于获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列。
95.队列调整模块504,用于查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾。
96.执行机分配模块506,用于轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。
97.在其中一个实施例中,等待队列确定模块502可以包括:
98.等待任务信息获取子模块,用于获取多个任务的获取时间与优先级。
99.等待优先级排序确定子模块,用于基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到等待优先级排序。
100.等待时间排序确定子模块,用于针对等待优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序。
101.等待顺序确定子模块,用于基于等待优先级排序与时间排序,确定多个任务的等待顺序。
102.在其中一个实施例中,队列调整模块504可以包括:
103.执行机供需查询子模块,用于查询等待队列中队首任务对应的执行机的最小需求数量,并实时获取执行机空闲数量。
104.任务优先级获取子模块,用于当最小需求数量大于执行机空闲数量时,获取执行队列队尾任务的优先级和等待队列中队首任务的优先级。
105.第一调整子模块,用于当等待队列中队首任务的优先级大于执行队列队尾任务的优先级时,将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列。
106.在其中一个实施例中,在执行机分配模块506之后,上述装置还可以包括:
107.执行机二次分配模块,用于释放执行队列队尾任务所得执行机,将释放的执行机分配给转入执行队列的等待队列中队首任务。
108.在其中一个实施例中,队列调整模块504还可以包括:
109.第二调整子模块,用于当最小需求数量小于或等于执行机空闲数量时,将等待队列中队首任务转入执行队列,基于最小需求数量,分配对应数量的执行机给转入执行队列的等待队列中队首任务。
110.在其中一个实施例中,执行机分配模块506之前,上述装置还可以包括:
111.执行任务信息获取模块,用于获取执行队列中多个任务的获取时间与优先级。
112.执行优先级排序确定模块,用于基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到执行优先级排序。
113.执行时间排序确定模块,用于针对执行优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序。
114.执行顺序确定模块,用于基于执行优先级排序与时间排序,确定多个任务的执行顺序。
115.执行队列排序模块,用于按照执行顺序对执行队列进行排序。
116.在其中一个实施例中,执行机分配模块506可以包括:
117.轮询子模块,用于按照执行顺序,轮询执行队列中多个任务对应的初始分配执行机数量与执行机推荐数量,并实时获取执行机空闲数量。
118.执行机数量确定子模块,用于针对执行队列中每个任务,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量。
119.在其中一个实施例中,执行机数量确定子模块可以包括:
120.第一分配单元,用于当初始分配执行机数量大于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第一差值,对任务释放等于第一差值数量的执行机。
121.计算单元,用于当初始分配执行机数量小于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第二差值。
122.第二分配单元,用于当第二差值小于或等于执行机空闲数量时,对任务追加分配等于第二差值数量的执行机。
123.第三分配单元,用于当第二差值大于执行机空闲数量时,将所有空闲的执行机分
配给任务。
124.上述资源调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
125.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储任务对应的执行机的最小需求数量和执行机推荐数量、执行机空闲数量数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种资源调度方法。
126.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
127.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列;查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾;轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。
128.在一个实施例中,处理器执行计算机程序时还实现基于多个任务的获取时间与优先级确定多个任务的等待顺序,可以包括:获取多个任务的获取时间与优先级;基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到等待优先级排序;针对等待优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;基于等待优先级排序与时间排序,确定多个任务的等待顺序。
129.在一个实施例中,处理器执行计算机程序时还实现查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,可以包括:查询等待队列中队首任务对应的执行机的最小需求数量,并实时获取执行机空闲数量;当最小需求数量大于执行机空闲数量时,获取执行队列队尾任务的优先级和等待队列中队首任务的优先级;当等待队列中队首任务的优先级大于执行队列队尾任务的优先级时,将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列。
130.在一个实施例中,处理器执行计算机程序时实现在将执行队列队尾任务转入等待
队列,将等待队列中队首任务转入执行队列之后,还可以包括:释放执行队列队尾任务所得执行机,将释放的执行机分配给转入执行队列的等待队列中队首任务。
131.在一个实施例中,处理器执行计算机程序时实现查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,还可以包括:当最小需求数量小于或等于执行机空闲数量时,将等待队列中队首任务转入执行队列,基于最小需求数量,分配对应数量的执行机给转入执行队列的等待队列中队首任务。
132.在一个实施例中,处理器执行计算机程序时实现轮询执行队列中多个任务对应的执行机需求数量之前,还可以包括:获取执行队列中多个任务的获取时间与优先级;基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到执行优先级排序;针对执行优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;基于执行优先级排序与时间排序,确定多个任务的执行顺序;按照执行顺序对执行队列进行排序。
133.在一个实施例中,处理器执行计算机程序时还实现轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行队列中每一任务的执行机数量,可以包括:按照执行顺序,轮询执行队列中多个任务对应的初始分配执行机数量与执行机推荐数量,并实时获取执行机空闲数量;针对执行队列中每个任务,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量。
134.在一个实施例中,处理器执行计算机程序时还实现基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量,可以包括:当初始分配执行机数量大于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第一差值,对任务释放等于第一差值数量的执行机;当初始分配执行机数量小于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第二差值;当第二差值小于或等于执行机空闲数量时,对任务追加分配等于第二差值数量的执行机;当第二差值大于执行机空闲数量时,将所有空闲的执行机分配给任务。
135.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取多个终端建立的任务,基于多个任务的获取时间与优先级确定多个任务的等待顺序,按照等待顺序将多个任务加入等待队列;查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾;轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行执行队列中每一任务的执行机数量。
136.在一个实施例中,计算机程序被处理器执行时还实现基于多个任务的获取时间与优先级确定多个任务的等待顺序,可以包括:获取多个任务的获取时间与优先级;基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到等待优先级排序;针对等待优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;基于等待优先级排序与时间排序,确定多个任务的等待顺序。
137.在一个实施例中,计算机程序被处理器执行时还实现查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,可以包括:查询等待队列中队首任务对应的执行机的最小需求数量,并实时获取执行机空闲数量;当最小需求数量大于执行机空闲数量时,获取执行队列队尾任务的优先级和等待队列中队首任务的优先级;当等待队列中队首任务的优先级大于执行队列队尾任务的优先级时,将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列。
138.在一个实施例中,计算机程序被处理器执行时实现在将执行队列队尾任务转入等待队列,将等待队列中队首任务转入执行队列之后,还可以包括:释放执行队列队尾任务所得执行机,将释放的执行机分配给转入执行队列的等待队列中队首任务。
139.在一个实施例中,计算机程序被处理器执行时实现查询等待队列中队首任务对应的执行机需求数量,确定队首任务对应的执行机需求数量与执行机空闲数量的数量关系,当数量关系满足预设条件时,将队首任务转入执行队列的队尾,还可以包括:当最小需求数量小于或等于执行机空闲数量时,将等待队列中队首任务转入执行队列,基于最小需求数量,分配对应数量的执行机给转入执行队列的等待队列中队首任务。
140.在一个实施例中,计算机程序被处理器执行时实现轮询执行队列中多个任务对应的执行机需求数量之前,还可以包括:获取执行队列中多个任务的获取时间与优先级;基于优先级,按照优先级级别由高到低的顺序对多个任务进行排序,得到执行优先级排序;针对执行优先级排序中同一优先级内的多个任务,将多个任务按照与时间流向相同的方向依次排序,得到同一优先级内的时间排序;基于执行优先级排序与时间排序,确定多个任务的执行顺序;按照执行顺序对执行队列进行排序。
141.在一个实施例中,计算机程序被处理器执行时还实现轮询执行队列中多个任务对应的执行机需求数量,基于执行队列中多个任务对应的执行机需求数量与执行机空闲数量的数量关系,确定执行队列中每一任务的执行机数量,可以包括:按照执行顺序,轮询执行队列中多个任务对应的初始分配执行机数量与执行机推荐数量,并实时获取执行机空闲数量;针对执行队列中每个任务,基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量。
142.在一个实施例中,计算机程序被处理器执行时还实现基于初始分配执行机数量,执行机推荐数量与执行机空闲数量的数量关系,确定执行执行队列中每个任务的执行机数量,可以包括:当初始分配执行机数量大于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第一差值,对任务释放等于第一差值数量的执行机;当初始分配执行机数量小于执行机推荐数量时,计算初始分配执行机数量与执行机推荐数量的第二差值;当第二差值小于或等于执行机空闲数量时,对任务追加分配等于第二差值数量的执行机;当第二差值大于执行机空闲数量时,将所有空闲的执行机分配给任务。
143.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
144.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关
国家和地区的相关法律法规和标准。
145.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
146.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
147.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献