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

未命名 08-17 阅读:123 评论:0


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.图1为本技术实施例提供的一种应用场景示意图;
41.图2为本技术实施例提供的一种任务调度方法的流程示意图;
42.图3为本技术实施例提供的一种预测函数的曲线示意图;
43.图4为本技术实施例提供的一种确定任务调度对应的谷底的流程示意图;
44.图5为本技术实施例提供的一种任务队列的结构示意图;
45.图6为本技术实施例提供的一种获取资源使用函数的过程示意图;
46.图7为本技术实施例提供的一种任务调度装置的结构示意图;
47.图8为本技术实施例提供的一种电子设备的结构示意图。
48.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
49.为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一设备和第二设备仅仅是为了区分不同的设备,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
50.需要说明的是,本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
51.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,
同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
52.在很多应用系统中常常需要执行一些任务,例如在高并发的系统中,多个租户的任务请求通过负载均衡分发到任务执行微服务上,以使各种资源进行合理有效的调节和使用,对任务进行调度可以使集群资源利用率达到最大化,使资源不被浪费。
53.一种可能的实现方式中,可以通过人工根据资源使用情况来确定资源使用低峰,在确定资源使用低峰后进行配置调度。
54.但是,在采用人工进行任务调度的方式时,要配置上线的任务对线上已经在运行的任务可能存在影响,如当多个任务运行时的时间有重叠,则会导致在该时间对应的资源使用量超过阈值,由于需要对任务进行逐一处理,此时,位于后面的任务申请不到资源,使得资源分配不平衡,任务响应也不及时。
55.需要说明的是,采用人工进行任务调度的方式,在考虑资源的合理分配时,要上线的任务性需要避开其他项目的运行时间,因此,要上线的任务不仅需要考虑申请资源的大小,运行时长以及在下一个资源使用高峰来临之前能不能运行结束等问题,而且也需要手动维护任务的调度时间,操作麻烦。
56.针对上述问题,本技术提供一种任务调度方法,可以通过获取线上每个任务的资源使用函数,并对所有任务资源使用函数进行处理,如进行求和处理,得到一个动态的24h资源使用图,即预测函数,进一步的,解析要上线的任务,即待处理的任务,得到任务所需的占用资源量,同时,求出预测函数的谷底,遍历谷底找到合适的位置即合理的时间对待处理任务进行处理,这样,可以合理地分配资源,及时的对调度后的任务进行处理。
57.示例性的,图1为本技术实施例提供的一种应用场景示意图,如图1所示,该应用场景包括:用户平台101和任务处理系统102;具体的,用户平台101用于接收任务处理系统102发起的任务获取请求,并根据任务获取请求,将当前已上线任务和待上线任务的任务信息发送至任务处理系统102;进一步的,任务处理系统102用于在任务处理系统102所在系统环境下向用户平台101发起任务获取请求,并在根据任务获取请求获取到当前已上线任务和待上线任务的任务信息的情况下,基于当前已上线任务的任务信息构建预测函数,并利用预测函数预测出多个资源量极值以及每一资源量极值对应的时间,相应的,可以将待上线任务的任务信息输入至机器学习模型如语法树模型,得到待上线任务所需的占用资源量,依次比较多个资源量极值和占用资源量的大小,直至找到满足条件的资源量极值,基于该资源量极值将待上线任务调度到该资源量极值对应的时间执行任务。
58.需要说明的是,用户平台101可以对应有一个或多个任务处理系统102,每个任务处理系统102所在系统环境可以相同也可以不同,任务处理系统102可以每隔一段时间向用户平台101发送任务获取请求,本技术实施例对此不作具体限定。
59.在任务处理系统102执行任务完成后,任务处理系统102可以生成执行任务的任务执行结果并返回至用户平台101,用户平台101可以接收这一任务执行结果;所述任务执行结果不仅包括任务成功执行的结果,还可以包括任务失败执行的结果,在任务失败的情况下,可以发送提示信息,以提醒用户任务调度失败,需要重新调度。
60.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
61.图2为本技术实施例提供的一种任务调度方法的流程示意图,如图2所示,所述任务调度方法包括如下步骤:
62.s201、获取已处理任务的资源使用函数,并基于预设时间段内的多个所述资源使用函数构建预测函数。
63.具体的,可以获取已处理任务的资源使用函数,并利用预定义算法对预设时间段内所述资源使用函数求和,得到预测函数。
64.本技术实施例中,资源使用函数可以指的是利用单个任务每秒资源使用情况,使用最小二乘法的曲线拟合出的一个函数,资源使用函数是一个随着时间推移的离散图;预设时间段可以指的是设定的用于应用预测函数的所在时间段,如一天24h内的预测函数,本技术实施例对预设时间段对应的具体数值不作限定,也可以为48h,一周等。
65.在本步骤中,通过拉取日志,获取平台上已处理任务在每秒的资源使用情况,如每秒对应的中央处理器(central processing unit,cpu)使用量,进一步的,利用最小二乘法,拟合出已处理任务的资源使用函数,并对平台上所有的已处理任务的资源使用函数利用预定义算法求和,得到一个动态的24h资源使用图,即预测函数,示例性的,图3为本技术实施例提供的一种预测函数的曲线示意图,如图3所示,即一个24h内的预测函数。
66.其中,所述预定义算法为提前定义好的用于函数求和的算法,如微积分算法,也可以为其他类型的求和算法,本技术实施例对预定义算法不作具体限定。
67.s202、获取待处理的目标任务对应的配置信息,基于所述配置信息得到所述目标任务对应的占用资源量;所述配置信息为任务处理对应的资源限值和预计时间。
68.具体的,可以获取待处理的目标任务对应的配置信息,将所述配置信息输入至机器学习模型中,得到所述目标任务对应的占用资源量。
69.本技术实施例中,占用资源量可以指的是处理完待处理的目标任务所需要的资源使用情况,配置信息包括任务处理对应的资源限值和预计时间,所述资源限值包括资源使用最大值和资源使用最小值,所述预计时间包括目标任务对应的预计的开始时间和结束时间。
70.在本步骤中,可以利用机器学习模型智能计算出要上线任务的资源使用情况,所述机器学习模型可以为语法树模型,即可以根据hive/spark语法解析以及配置信息来计算出目标任务需要的占用资源量。
71.需要说明的是,所述机器学习模型为提前训练好的用于计算目标任务的资源使用情况的模型,也可以为基于卷积神经网络的深度学习模型,本技术实施例对机器学习模型对应的模型类型不作具体限定。
72.示例性的,在图1的应用场景下,任务处理系统102还可以包括用户平台输入接口,通过这一接口可以获取待处理的目标任务对应的配置信息,并将配置信息发送至任务处理系统102,进一步的,任务处理系统102将配置信息输入至语法树模型中,得到目标任务对应的占用资源量。
73.s203、处理所述预测函数,获取所述预测函数对应的多个调度点,所述调度点包括
时间以及所述时间对应的资源量极值,比较多个所述调度点的所述资源量极值与所述目标任务对应的占用资源量。
74.具体的,对所述预测函数处理,得到多个调度点,并基于所述目标任务对应的占用资源量确定多个资源量极值中是否存在大于所述目标任务对应的占用资源量的目标资源量极值;所述资源量极值对应所述预测函数的极小值点的纵坐标值。
75.可选的,利用梯度下降法对所述预测函数处理,得到多个调度点,所述梯度下降法是一个一阶最优化算法,用于计算一个函数的局部极小值,具体的,利用梯度下降的基本形式,即利用迭代公式θ
n+1
=θ
n-αl`(x)对预测函数l(x)求导,将损失函数最小化,其中,α是学习率,θn是预测函数l(x)上一个点的坐标,θ
n+1
是沿这个梯度向量移动幅度α之后的一个点的坐标。
76.在本步骤中,对预测函数利用梯度下降法进行两次求导,求出预测函数的相对的谷底,即预测函数的极小值点,所述相对谷底的数量可能有多个,进一步的,遍历多个谷底,并计算将目标任务放在这个谷底处理会不会超过资源设置的阈值,即资源量极值。
77.需要说明的是,本技术实施例也可以利用其他类型的算法对所述预测函数处理,得到多个调度点,本技术实施例对此不作具体限定。
78.s204、当所述调度点的所述资源量极值大于所述目标任务对应的占用资源量时,则将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理。
79.具体的,若确定存在大于所述目标任务对应的占用资源量的目标资源量极值,则将所述目标任务调度至所述目标资源量极值对应的时间进行处理。
80.在本步骤中,若经过计算得到将目标任务调度至某个谷底,超过资源设置的阈值,则计算下一个谷底,以此类推,直至确定存在大于目标任务对应的占用资源量的目标资源量极值,并将目标任务调度至该谷底进行处理,即将目标任务调度至目标资源量极值对应的时间进行处理。
81.可以理解的是,将目标任务调度至目标资源量极值对应的时间进行处理后,已处理任务的数量发生改变,则可以重新生成预测函数,并继续执行s202-s204,即再次获取目标任务,以及遍历预测函数的相对谷底,直到找个合适的谷底,并生成新的资源使用函数,重复执行s202-s204,直到遍历完所有待处理的任务,即完成智能调度。
82.因此,本技术实施例提供一种任务调度方法,可以通过获取已处理任务的资源使用函数,并基于预设时间段内的多个资源使用函数构建预测函数;进一步的,获取待处理的目标任务对应的配置信息,基于配置信息得到目标任务对应的占用资源量进一步的,处理预测函数,得到多个谷底,即调度点,包括时间以及时间对应的资源量极值,遍历谷底找到合适的点对待处理的目标任务进行调度,即找到大于目标任务对应的占用资源量的调度点的资源量极值,将目标任务调度至调度点的资源量极值对应的时间进行处理,这样,通过将目标任务调度至谷底对应的时间处理,可以合理地分配资源,及时的对调度后的任务进行处理。
83.可选的,比较多个所述调度点的所述资源量极值与所述目标任务对应的占用资源量,包括:
84.对多个所述调度点的所述资源量极值按照所述资源量极值对应的时间大小的顺序进行排序,得到排序后的资源量极值;
85.依次比较排序后的资源量极值与所述目标任务对应的占用资源量。
86.具体的,可以依次判断排序后的资源量极值是否大于所述目标任务对应的占用资源量,直至确定所述多个资源量极值中存在大于所述目标任务对应的占用资源量的目标资源量极值。
87.其中,依次判断排序后的资源量极值是否大于所述目标任务对应的占用资源量,即在遍历资源使用谷底,用于查找到符合条件的谷底,即将目标任务调度到该谷底,该谷底对应的资源量极值大于所述目标任务对应的占用资源量。
88.示例性的,图4为本技术实施例提供的一种确定任务调度对应的谷底的流程示意图,如图4所示,遍历队列中的任务,即先取出第一任务(目标任务),进一步的,获取平台资源使用函数l(x),并对l(x)两次求导,即利用梯度下降法求出多个谷底,进一步的,遍历资源使用谷底,即依次判断任务放在按时间大小的顺序排序后的谷底是否超过阈值,若是,则遍历下一个谷底,直至确定任务放在该谷底不会超过阈值,相应的,将任务放在这个谷底,并重新拟合新的资源使用函数;若否,则确定该任务放在该谷底不会超过阈值,将任务放在该谷底以及重新拟合新的资源使用函数即可。
89.因此,本技术实施例可以遍历资源使用谷底,找到合适的谷底进行任务调度处理,确定资源使用低峰,合理利用资源,并可以减少资源使用高峰的来临。
90.可选的,所述配置信息包括开始时间、结束时间、资源使用最大值和资源使用最小值;获取待处理的目标任务对应的配置信息,包括:
91.获取每一个待处理任务之间的逻辑关系和配置信息,所述逻辑关系基于所述待处理的目标任务所需的数据确定;
92.基于所述逻辑关系将所述每一个待处理任务添加至任务队列中,基于所述待处理任务对应的开始时间和结束时间在所述任务队列中确定待处理的目标任务,并调用所述目标任务对应的配置信息。
93.本技术实施例中,逻辑关系可以基于任务的输入表和输出表确定,所述输入表和输出表可以经过hive/spark的语法解析得到,所述逻辑关系基于所述待处理的目标任务所需的数据确定,如处理任务1需要数据1,处理任务2需要数据2和3,处理任务3需要数据3和4,则任务2和任务3具有关联关系,任务1和任务2以及任务3没有关联关系。
94.在本步骤中,可以根据待处理任务对应的输入表和输出表的逻辑关系,生成一个逻辑图,添加至队列中,示例性的,图5为本技术实施例提供的一种任务队列的结构示意图,如图5所示,任务队列中的任务有串行和并列,当多个任务有关联关系时,会并列放在一起,如任务2和任务3有关联关系,任务5和任务6有关联关系,则将任务1-任务6添加至任务队列中。
95.可选的,可以基于待处理任务对应的开始时间和结束时间,按照先后顺序添加至任务队列中,进而按照先后顺序从任务队列中确定待处理的目标任务,并调用目标任务对应的配置信息。
96.可选的,通过计算出要上线的每个待处理任务需要的资源限制和预计时间,把待处理任务按照预计时间和资源限制添加至任务队列中,本技术实施例对添加至任务队列中任务的方式不作具体限定。
97.可以理解的是,当待处理任务有并列的时候,可以随机取出一个作为目标任务。
98.因此,本技术实施例可以遍历任务队列中的任务,查找目标任务,可以及时对目标任务进行处理,提高处理任务的及时性。
99.可选的,基于所述逻辑关系将所述每一个待处理任务添加至任务队列中,包括:
100.获取所述每一个待处理任务对应的优先级,并基于所述逻辑关系和优先级的高低将所述每一个待处理任务添加至任务队列中。
101.本技术实施例中,优先级可以是人为提前设定,也可以是按照待处理任务对应的资源限制大小或时间先后进行设定,本技术实施例对此不作具体限定,设置所述优先级,用以赋予待处理任务处理顺序,对于着急的任务或占用资源量大的业务可以优先处理。
102.在本步骤中,获取每一待处理任务对应的优先级,并基于逻辑关系确定待处理任务的关联关系,进一步的,基于优先级的高低将确定好关联关系的待处理任务添加至任务队列中,其中,当多个任务并列的时候,可以通过设置优先级的高低,选出优选处理的任务。
103.因此,本技术实施例通过设置任务的优先级,使得优先级高的待处理任务可以优先调度,提高处理的灵活性。
104.可选的,所述方法还包括:
105.获取所述任务队列中待处理任务对应的数量,并判断所述数量是否超过预设阈值;
106.当确定所述待处理任务对应的数量超过预设阈值时,根据优先级的高低对各所述待处理任务进行降序排列,并将排列在后预设个数的待处理任务确定为延期任务。
107.本技术实施例中,预设阈值可以指的是提前设定的用于确定待处理任务对应的数量过多对应的阈值,本技术实施例对预设阈值对应的具体数值不作限定,其可以根据应用场景进行设定。
108.在本步骤中,当确定待处理任务对应的数量超过预设阈值时,则根据优先级的高低对各所述待处理任务进行降序排列,优先处理排序靠前的任务,并将排列在后预设个数的待处理任务确定为延期任务,所述延期任务即为延期处理,发给其他线程处理,或第二天再处理的任务,即在规定时间内处理优先级高的任务,所述预设个数根据规定时间确定,即规定时间外需要处理的任务个数,如一天内可处理20个任务,但有25个待处理任务,则预设个数为5个。
109.因此,本技术实施例可以在待处理任务过多的情况下,将任务延期处理,减少处理压力与冗余。
110.可选的,获取已处理任务的资源使用函数,包括:
111.获取已处理任务的资源使用情况,并对所述资源使用情况进行拟合,得到样本数据集;所述资源使用情况包括任务处理时间和每一任务处理时间对应的占用资源量;
112.利用最小二乘法基于所述样本数据集进行曲线拟合,得到已处理任务的资源使用函数。
113.本技术实施例中,最小二乘法可以通过最小化误差的平方和寻找数据的最佳函数匹配,即利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
114.在本步骤中,获取已处理任务对应的任务处理时间以及每一处理时间对应的占用资源量等数据,通过取中位数,定位到该已处理任务在每个时间点上的任务资源数值(样本
数据集),利用上述样本数据集进行最小二乘法曲线拟合,得到资源使用函数。
115.需要说明的是,本技术实施例也可以利用其他算法对所述样本数据集进行曲线拟合,本技术实施例对此不作具体限定。
116.示例性的,图6为本技术实施例提供的一种获取资源使用函数的过程示意图,如图6所示,x轴表示不同的时间点,y轴表示每次任务的占用资源量,即资源使用值,如图6中a所示,虚线表示多天执行同一任务的不同资源使用函数,通过每个时间点上取中位数,拟合成实线对应的数据函数,所述数据函数作为已处理任务的样本数据集,由于该数据函数目前得到的是个离散的数据集,因此还需要利用最小二乘法进行曲线拟合。
117.如图6中b所示,假设获取一组样本数据集p(x,y),p内各数据点pi(xi,yi),各数据点对应于多项式中可取的点:其中,i=1,2,3
……
,m,y*表示待拟合的数据函数,例如它可以为一元多次函数;m为样本数据的维度,即数量;n为多项式阶数;θj(j=1,2,3
……
,n)为多项式的各项系数。
118.进一步的,定义损失函数利用损失函数求解出最有函数,即已处理任务的资源使用函数,其中,s表示预测值与真实值的差值平方和,用来衡量预测值与真实值之间的差距;表示预测值,即预测占用资源量;yi表示实际值,即实际占用资源量;i表示样本数量,即多个时间点。具体的,基于误差平方和s对各多项式系数θj(j=1,2,3
……
,n)求偏导,且对应的偏导数为0,即这样,可以将将损失函数降到最小,即满足预测值与真实值越接近。
119.通过推导,令
120.可得θ为求出多项式系数向量,即得到s最优解时,各θj(j=1,2,3
……
,n)的值,将θ代入f(x),得到已处理任务的拟合函数f(x),即已处理任务的资源使用函数。
121.综上所述,利用已处理任务对应的样本数据集,在坐标系中进行描点展示,并利用最小二乘法拟合出曲线,进一步的,如图6中c所示,得到一个平滑的资源使用函数。
122.因此,本技术实施例利用最小二乘法确定最佳函数匹配,简化计算过程,提高拟合效果。
123.可选的,在将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理后,所述方法还包括:
124.获取所述目标任务对应的运行状态参数,判断所述运行状态参数是否超过报警阈值;
125.当确定所述运行状态参数超过报警阈值时,执行与所述报警阈值对应的预定报警
操作,并生成报警信息,将所述报警信息发送至用户的终端设备。
126.本技术实施例中,运行状态参数可以指的是表述任务是否运行正常的参数,如执行参数等;报警阈值可以指的是提前设定的用于确定所述运行状态参数出现异常对应的阈值,本技术实施例对运行状态参数对应的内容以及报警阈值设定的数值不作具体限定。
127.在本步骤中,在确定目标任务对应的运行状态参数超过报警阈值时,执行与所述报警阈值对应的预定报警操作,如停止运行操作,所述预定报警操作为提前设定的用于保证系统稳定运行的操作,进一步的,生成报警信息,并将所述报警信息发送至用户的终端设备,所述报警信息可以是以短信的形式或显示框的形式发送到用户的终端设备上,所述报警信息的内容可以包括超过报警阈值的运行状态参数,也可以是基于所述运行状态参数生成的异常原因,本技术实施例对报警信息的发送形式和发送内容不作具体限定。
128.可选的,在生成报警信息后,可以将所述报警信息进行可视化显示,即在任务处理系统对应的显示设备上进行显示。
129.因此,本技术实施例可以判断目标任务是否正常运行,进而提高任务处理的稳定性。
130.在前述实施例中,对本技术实施例提供的任务调度方法进行了介绍,而为了实现上述本技术实施例提供的方法中的各功能,作为执行主体的电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
131.例如,图7为本技术实施例提供的一种任务调度装置的结构示意图,所述装置包括:构建模块710,获取模块720,处理模块730和调度模块740;其中,所述构建模块710,用于获取已处理任务的资源使用函数,并基于预设时间段内的多个所述资源使用函数构建预测函数;
132.所述获取模块720,用于获取待处理的目标任务对应的配置信息,基于所述配置信息得到所述目标任务对应的占用资源量;所述配置信息为任务处理对应的资源限值和预计时间;
133.所述处理模块730,用于处理所述预测函数,获取所述预测函数对应的多个调度点,所述调度点包括时间以及所述时间对应的资源量极值,比较多个所述调度点的所述资源量极值与所述目标任务对应的占用资源量;
134.所述调度模块740,用于当所述调度点的所述资源量极值大于所述目标任务对应的占用资源量时,则将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理。
135.可选的,所述处理模块730,具体用于:
136.对多个所述调度点的所述资源量极值按照所述资源量极值对应的时间大小的顺序进行排序,得到排序后的资源量极值;
137.依次比较排序后的资源量极值与所述目标任务对应的占用资源量。
138.可选的,所述配置信息包括开始时间、结束时间、资源使用最大值和资源使用最小值;所述获取模块720包括获取单元和添加单元;
139.具体的,所述获取单元,用于获取每一个待处理任务之间的逻辑关系和配置信息,
所述逻辑关系基于所述待处理的目标任务所需的数据确定;
140.所述添加单元,用于基于所述逻辑关系将所述每一个待处理任务添加至任务队列中,基于所述待处理任务对应的开始时间和结束时间在所述任务队列中确定待处理的目标任务,并调用所述目标任务对应的配置信息。
141.可选的,所述添加单元,具体用于:
142.获取所述每一个待处理任务对应的优先级,并基于所述逻辑关系和优先级的高低将所述每一个待处理任务添加至任务队列中。
143.可选的,所述装置还包括判断模块,所述判断模块,用于:
144.获取所述任务队列中待处理任务对应的数量,并判断所述数量是否超过预设阈值;
145.当确定所述待处理任务对应的数量超过预设阈值时,根据优先级的高低对各所述待处理任务进行降序排列,并将排列在后预设个数的待处理任务确定为延期任务。
146.可选的,所述构建模块710,具体用于:
147.获取已处理任务的资源使用情况,并对所述资源使用情况进行拟合,得到样本数据集;所述资源使用情况包括任务处理时间和每一任务处理时间对应的占用资源量;
148.利用最小二乘法基于所述样本数据集进行曲线拟合,得到已处理任务的资源使用函数。
149.可选的,在将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理后,所述装置还包括报警模块,所述报警模块,用于:
150.获取所述目标任务对应的运行状态参数,判断所述运行状态参数是否超过报警阈值;
151.当确定所述运行状态参数超过报警阈值时,执行与所述报警阈值对应的预定报警操作,并生成报警信息,将所述报警信息发送至用户的终端设备。
152.本技术实施例提供的一种任务调度装置的具体实现原理和效果可以参见上述实施例对应的相关描述和效果,此处不做过多赘述。
153.本技术实施例还提供了一种电子设备的结构示意图,图8为本技术实施例提供的一种电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器801以及与所述处理器通信连接的存储器802;该存储器802存储计算机执行指令;该处理器801执行该存储器802存储的计算机执行指令,使得该处理器801执行上述任一实施例所述的方法。
154.其中,存储器802和处理器801可以通过总线803连接。
155.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序执行指令,计算机执行指令被处理器执行时用于实现如本技术前述任一实施例中的所述的方法。
156.本技术实施例还提供了一种运行指令的芯片,该芯片用于执行如本技术前述任一实施例中由电子设备所执行的前述任一实施例中所述的方法。
157.本技术实施例还提供了一种计算机程序产品,该程序产品包括计算机程序,该计算机程序被处理器执行时可实现如本技术前述任一实施例中由电子设备所执行的前述任一实施例中所述的方法。
158.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其
它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
159.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
160.另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
161.上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的部分步骤。
162.应理解,上述处理器可以是中央处理单元(central processing unit,简称cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
163.存储器可能包含高速随机存取存储器(random access memory,简称ram),也可能还包括非不稳定的存储器(non-volatile memory,简称nvm),例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
164.总线可以是工业标准体系结构(industry standard architecture,简称isa)总线、外部设备互连(peripheral component interconnect,简称pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
165.上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random-access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
166.一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
167.以上所述,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何在本技术实施例揭露的技术范围内的变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种任务调度方法,其特征在于,所述方法包括:获取已处理任务的资源使用函数,并基于预设时间段内的多个所述资源使用函数构建预测函数;获取待处理的目标任务对应的配置信息,基于所述配置信息得到所述目标任务对应的占用资源量;所述配置信息为任务处理对应的资源限值和预计时间;处理所述预测函数,获取所述预测函数对应的多个调度点,所述调度点包括时间以及所述时间对应的资源量极值,比较多个所述调度点的所述资源量极值与所述目标任务对应的占用资源量;当所述调度点的所述资源量极值大于所述目标任务对应的占用资源量时,则将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理。2.根据权利要求1所述的方法,其特征在于,比较多个所述调度点的所述资源量极值与所述目标任务对应的占用资源量,包括:对多个所述调度点的所述资源量极值按照所述资源量极值对应的时间大小的顺序进行排序,得到排序后的资源量极值;依次比较排序后的资源量极值与所述目标任务对应的占用资源量。3.根据权利要求1所述的方法,其特征在于,所述配置信息包括开始时间、结束时间、资源使用最大值和资源使用最小值;获取待处理的目标任务对应的配置信息,包括:获取每一个待处理任务之间的逻辑关系和配置信息,所述逻辑关系基于所述待处理的目标任务所需的数据确定;基于所述逻辑关系将所述每一个待处理任务添加至任务队列中,基于所述待处理任务对应的开始时间和结束时间在所述任务队列中确定待处理的目标任务,并调用所述目标任务对应的配置信息。4.根据权利要求3所述的方法,其特征在于,基于所述逻辑关系将所述每一个待处理任务添加至任务队列中,包括:获取所述每一个待处理任务对应的优先级,并基于所述逻辑关系和优先级的高低将所述每一个待处理任务添加至任务队列中。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取所述任务队列中待处理任务对应的数量,并判断所述数量是否超过预设阈值;当确定所述待处理任务对应的数量超过预设阈值时,根据优先级的高低对各所述待处理任务进行降序排列,并将排列在后预设个数的待处理任务确定为延期任务。6.根据权利要求1所述的方法,其特征在于,获取已处理任务的资源使用函数,包括:获取已处理任务的资源使用情况,并对所述资源使用情况进行拟合,得到样本数据集;所述资源使用情况包括任务处理时间和每一任务处理时间对应的占用资源量;利用最小二乘法基于所述样本数据集进行曲线拟合,得到已处理任务的资源使用函数。7.根据权利要求1-6任一项所述的方法,其特征在于,在将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理后,所述方法还包括:获取所述目标任务对应的运行状态参数,判断所述运行状态参数是否超过报警阈值;当确定所述运行状态参数超过报警阈值时,执行与所述报警阈值对应的预定报警操
作,并生成报警信息,将所述报警信息发送至用户的终端设备。8.一种任务调度装置,其特征在于,所述装置包括:构建模块,用于获取已处理任务的资源使用函数,并基于预设时间段内的多个所述资源使用函数构建预测函数;获取模块,用于获取待处理的目标任务对应的配置信息,基于所述配置信息得到所述目标任务对应的占用资源量;所述配置信息为任务处理对应的资源限值和预计时间;处理模块,用于处理所述预测函数,获取所述预测函数对应的多个调度点,所述调度点包括时间以及所述时间对应的资源量极值,比较多个所述调度点的所述资源量极值与所述目标任务对应的占用资源量;调度模块,用于当所述调度点的所述资源量极值大于所述目标任务对应的占用资源量时,则将所述目标任务调度至所述调度点的所述资源量极值对应的时间进行处理。9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。11.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。

技术总结
本申请涉及数据处理技术领域,提供一种任务调度方法、装置、电子设备、存储介质及程序产品,方法包括:获取已处理任务的资源使用函数,基于预设时间段内的多个资源使用关系函数构建预测函数;获取待处理的目标任务对应的配置信息,基于配置信息得到目标任务对应的占用资源量,配置信息为任务处理对应的资源限值和预计时间;处理预测函数,获取预测函数对应的多个调度点,调度点包括时间以及时间对应的资源量极值,比较多个调度点的资源量极值与目标任务对应的占用资源量;当调度点的资源量极值大于目标任务对应的占用资源量时,将目标任务调度至调度点的资源量极值对应的时间进行处理,这样,可以合理地分配资源,及时对调度后的任务进行处理。务进行处理。务进行处理。


技术研发人员:高展 马千里 李少辉 朱康康 盛柏森 王超 张岩 杭承政 蔡益平
受保护的技术使用者:浙江海亮科技有限公司
技术研发日:2023.06.28
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐