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

文档序号:29452467发布日期:2022-03-30 12:08阅读:75来源:国知局
一种任务调度方法、装置、电子设备及存储介质与流程

1.本发明实施例涉及计算机应用技术领域,尤其涉及一种任务调度方法、装置、电子设备及存储介质。


背景技术:

2.任务调度是操作系统的重要组成部分,对于操作系统而言,任务调度会直接影响其实时性能。
3.目前,主要有两种任务调度方式,一种是分片调度方式,即按照用户的业务逻辑对全部节点(运行调度任务的设备)进行分片拆分,进而将多个任务发送到至少一个分片范围内的节点,由多个节点并行执行分配的任务。另一种为随机调度方式,即通过随机函数在注册的集群中选择一个节点执行调度作业。但无论是分片调度方式还是随机调度方式往往由于调度不合理,导致系统高负荷,甚至引发系统崩溃,使得节点无法正常执行调度任务,还会由于调度不合理产生调度成本高的问题。


技术实现要素:

4.本发明实施例提供一种任务调度方法、装置、电子设备及存储介质,能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
5.第一方面,本发明实施例提供了一种任务调度方法,包括:
6.获取待分配任务以及任务处理设备运行数据;
7.确定待分配任务的任务运行数据;
8.根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
9.第二方面,本发明实施例还提供了一种任务调度装置,包括:
10.数据获取模块,用于获取待分配任务以及任务处理设备运行数据;
11.任务运行数据确定模块,用于确定待分配任务的任务运行数据;
12.待分配任务分配模块,用于根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
13.第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
14.一个或多个处理器;
15.存储装置,用于存储一个或多个程序;
16.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的任务调度方法。
17.第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的任务调度方法。
18.本实施例的技术方案,通过获取待分配任务以及任务处理设备运行数据,进而确定待分配任务的任务运行数据,从而根据待分配任务的任务运行数据以及任务处理设备运
行数据将待分配任务分配至目标任务处理设备,由于任务处理设备运行数据能够表征任务处理设备的实际运行状态,确定待分配任务的任务运行数据能够明确待分配任务对任务处理设备运行状态的潜在影响,而根据任务处理设备运行状态的潜在影响以及任务处理设备的实际运行状态可以确定能够快速处理待分配任务的目标任务处理设备,因此根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,可以实现对待分配任务的合理调度,减少调度成本,解决了现有技术中任务调度不合理导致的系统高负荷、系统崩溃、调度成本高以及节点无法正常执行调度任务的问题,能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
附图说明
19.图1是本发明实施例一提供的一种任务调度方法的流程图;
20.图2是本发明实施例二提供的一种任务调度方法的流程图;
21.图3是本发明实施例二提供的一种任务调度系统的示意图;
22.图4是本发明实施例二提供的一种任务调度时序的示意图;
23.图5是本发明实施例三提供的一种任务调度装置的示意图;
24.图6为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
25.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
26.另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
27.实施例一
28.图1是本发明实施例一提供的一种任务调度方法的流程图,本实施例可适用于合理调度任务的情况,该方法可以由任务调度装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中,该电子设备可以是终端设备,也可以是服务器设备等,本发明实施例并不对执行任务调度方法的电子设备的类型进行限定。相应的,如图1所示,该方法包括如下操作:
29.s110、获取待分配任务以及任务处理设备运行数据。
30.其中,待分配任务可以是需要分配置至任务处理设备的任务。任务处理设备运行数据可以是表征任务处理设备当前运行情况的数据。示例性的,任务处理设备运行数据可以包括但不限于当前运行任务的名称、当前运行任务的开始时间、当前运行任务的结束时间、排队中的任务的相关数据以及各类资源占用比例数据等。本发明实施例对任务处理设备运行数据包括的具体数据内容不作限定。任务处理设备可以是能够实现数据处理分析的设备。
31.在本发明实施例中,可以接收待分配任务,并收集至少一个任务处理设备的任务处理设备运行数据。
32.s120、确定待分配任务的任务运行数据。
33.其中,任务运行数据可以是任务运行过程中的资源占用指标数据,用于确定待分配任务的资源消耗类型。示例性的,假设任务a在任务处理设备运行时,任务处理设备的a类资源占用率为2%,b类资源的占用率为3%,c类资源的占用率为4%,则可以确定任务a的资源消耗类型为c类资源,a类资源占用率为2%,b类资源的占用率为3%,c类资源的占用率为4%等为任务a的任务运行数据。
34.在本发明实施例中,可以根据待分配任务的调用情况确定待分配任务在任务处理设备的任务运行数据,以通过确定待分配任务的任务运行数据明确待分配任务对任务处理设备的资源占用情况的影响,从而确定待分配任务对任务处理设备的运行状态的影响。
35.s130、根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
36.其中,目标任务处理设备可以是需要处理待分配任务的任务处理设备。示例性的,目标任务处理设备可以包括至少一个任务处理设备。
37.在本发明实施例中,可以根据待分配任务的任务运行数据以及任务处理设备运行数据从至少一个任务处理设备中确定目标任务处理设备,进而由目标任务处理设备对待分配任务进行处理。
38.可选的,当待分配任务的任务数量唯一,且只需要一个任务处理设备处理待分配任务的情况下,可以根据待分配任务的任务运行数据以及任务处理设备运行数据从至少一个任务处理设备中确定一个任务处理设备作为目标任务处理设备。当待分配任务的任务数量为多个,且需要多个任务处理设备处理待分配任务的情况下,可以根据待分配任务的任务运行数据以及任务处理设备运行数据从多个任务处理设备中确定至少两个任务处理设备作为目标任务处理设备。
39.本实施例的技术方案,通过获取待分配任务以及任务处理设备运行数据,进而确定待分配任务的任务运行数据,从而根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,由于任务处理设备运行数据能够表征任务处理设备的实际运行状态,确定待分配任务的任务运行数据能够明确待分配任务对任务处理设备运行状态的潜在影响,而根据任务处理设备运行状态的潜在影响以及任务处理设备的实际运行状态可以确定能够快速处理待分配任务的目标任务处理设备,因此根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,可以实现对待分配任务的合理调度,减少调度成本,解决了现有技术中任务调度不合理导致的系统高负荷、系统崩溃、调度成本高以及节点无法正常执行调度任务的问题,能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
40.实施例二
41.图2是本发明实施例二提供的一种任务调度方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了获取任务处理设备运行数据的具体过程可以为:根据待分配任务确定任务触发时间;在确定到达任务触发时间的情况下,向任务处理设备发送数据采集指令;接收任务处理设备根据数据采集指令反馈的任务处理设备运行数
据。本实施例还给出了确定待分配任务的任务运行数据,以及根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备的具体的可选的实施方式。相应的,如图2所示,该方法包括如下操作:
42.s210、获取待分配任务。
43.s220、根据待分配任务确定任务触发时间。
44.其中,任务触发时间可以是待分配任务需要被分配的时间。
45.在本发明实施例中,可以对接收的待分配任务进行解析,确定待分配任务的任务触发时间。
46.s230、在确定到达任务触发时间的情况下,向任务处理设备发送数据采集指令。
47.其中,数据采集指令可以是向任务处理设备发送的采集数据的指令,用于采集任务处理设备运行数据。
48.在本发明实施例中,如果当前时间达到待分配任务的任务触发时间,则向任务处理设备发送数据采集指令,以使任务处理设备根据数据采集指令收集任务处理设备运行数据,并向执行任务调度方法的电子设备反馈任务处理设备运行数据。
49.s240、接收任务处理设备根据数据采集指令反馈的任务处理设备运行数据。
50.相应的,可以接收任务处理设备根据数据采集指令反馈的任务处理设备运行数据。
51.s250、确定待分配任务的任务运行数据。
52.在本发明的一个可选实施例中,确定待分配任务的任务运行数据,可以包括:在确定待分配任务为首次调用任务的情况下,根据默认任务运行数据确定待分配任务的任务运行数据;在确定待分配任务为非首次调用任务的情况下,根据待分配任务的任务运行关联数据确定待分配任务的任务运行数据。
53.其中,首次调用任务可以是首次被调用的任务,也即需要在任务处理设备首次执行的任务。默认任务运行数据可以是为首次调用任务预先配置的,表征任务在初始运行过程中的资源占用指标。非首次调用任务可以是在任务处理设备已执行过的任务。任务运行关联数据可以是与待分配任务的任务运行数据关联的数据。可选的,任务运行关联数据可以包括但不限于cpu(central processing unit,中央处理器)占用率数据、内存占用率数据以及io(input/output,输入输出)占用率数据。本发明实施例对任务运行关联数据的具体数据内容不作限定。cpu占用率数据可以是表征任务运行时cpu的消耗率的数据。内存占用率数据可以是表征任务运行时内存的消耗率的数据。io占用率数据可以是表征任务运行时io的消耗率的数据。cpu主要负责计算机中的指令处理、操作执行、时间控制以及数据处理等。内存为内存储器的简称,用于暂时存放cpu中的运算数据,以及与外部存储器交换的数据。
54.在本发明实施例中,可以将任务处理设备已经执行的任务与待分配任务进行比对,如果任务处理设备已经执行的任务中不包括待分配任务,则表征待分配任务为首次调用任务,进而将默认任务运行数据作为待分配任务的任务运行数据。如果任务处理设备已经执行的任务中包括待分配任务,则表征待分配任务为非首次调用任务,进而获取待分配任务的任务运行关联数据,并根据任务运行关联数据确定待分配任务的任务运行数据。
55.可选的,可以根据待分配任务的cpu占用率数据、内存占用率数据以及io占用率数
据等确定待分配任务的任务运行数据。
56.在本发明的一个可选实施例中,在确定待分配任务为非首次调用任务之前,还可以包括:获取待分配任务历史运行数据;根据待分配任务历史运行数据确定待分配任务的任务运行平均占比数据;根据待分配任务的任务运行平均占比数据确定待分配任务的任务运行数据。
57.其中,待分配任务历史运行数据可以是在任务处理设备已完成运行的任务包括待分配任务时,运行此次待分配任务之前,历次执行待分配任务过程中的资源占用指标数据。任务运行平均占比数据可以是根据待分配任务历史运行数据确定的,待分配任务在运行过程中的各资源占用指标的均值数据。
58.在本发明实施例中,如果待分配任务为非首次调用任务,则可以进一步获取待分配任务的待分配任务历史运行数据,进而计算待分配任务的待分配任务历史运行数据在不同资源占用指标(如cpu占用率、io占用率以及内存占用率等)下的均值,得到任务运行平均占比数据。在得到任务运行平均占比数据之后,可以确定任务运行平均占比数据中各资源占用指标中的最大值,进而根据任务运行平均占比数据中各资源占用指标中的最大值确定待分配任务的任务运行数据。
59.示例性的,假设待分配任务之前运行过2次,对待分配任务历史运行数据进行解析可以得到其中一次运行过程中cpu占用率为2%,内存占用率为3%,io占用率为1%,另一次运行过程中cpu占用率为6%,内存占用率为3%,io占用率为4%,则可以得到任务运行平均占比数据为cpu平均占用率为4%,内存平均占用率为3%,io平均占用率为2.5%,进而确定待分配任务的资源消耗类型为cpu消耗型。
60.s260、根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
61.示例性的,当待分配任务的任务数量唯一,且只需要一个任务处理设备处理待分配任务的情况下,可以根据待分配任务的资源消耗类型以及任务处理设备运行数据从至少一个任务处理设备中确定该资源占用率最低的任务处理设备,进而将该资源占用率最低的任务处理设备作为目标任务处理设备。假设待分配任务的资源消耗类型为内存消耗型,则从至少一个任务处理设备中确定内存占用率最低的任务处理设备,将内存占用率最低的任务处理设备作为目标任务处理设备。当待分配任务的任务数量为多个,且需要多个任务处理设备处理待分配任务的情况下,可以根据各待分配任务的资源消耗类型以及任务处理设备运行数据从多个任务处理设备中确定各资源占用率最低的任务处理设备,根据待分配任务的资源消耗类型将待分配任务分配至相应资源占用率最低的任务处理设备。如待分配任务为2个任务,分别为待分配任务a以及待分配任务b,待分配任务a的资源消耗类型为内存消耗型,则将待分配任务a分配至内存占用率最低的任务处理设备,待分配任务b的资源消耗类型为io消耗型,则将待分配任务b分配至io占用率最低的任务处理设备。
62.在本发明的一个可选实施例中,任务调度方法还可以包括:获取各任务处理设备的待处理任务队列中各待处理任务的任务优先级;根据任务优先级确定各任务处理设备的当前待处理任务。
63.其中,待处理任务队列可以是任务处理设备需要处理的任务队列。待处理任务可以是任务处理设备需要处理的任务。任务优先级可以是任务处理设备处理的任务的优先级
别。任务优先级可以根据任务处理需要进行预先设置。当前待处理任务可以是任务处理设备的待处理任务队列中最先需要执行的,任务优先级最高的任务。
64.在本发明实施例中,可以根据各任务处理设备的任务处理设备运行数据确定各任务处理设备的待处理任务队列,进而确定各待处理任务队列中各待处理任务的任务优先级,并将各待处理任务队列中任务优先级最高的任务作为各任务处理设备的当前待处理任务。通过为任务设置任务优先级可以保证高优先级的任务先作业,享有更好的运行资源,以满足实际的任务调度需求。
65.在本发明的一个可选实施例中,根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,可以包括:根据待分配任务的任务运行数据以及任务处理设备运行数据确定备选任务处理设备;根据备选任务处理设备中各任务处理设备的当前待处理任务的任务优先级确定目标任务处理设备;将待分配任务分配至目标任务处理设备。
66.其中,备选任务处理设备可以是满足待分配任务运行需求的任务处理设备,也即能够在可承载负荷内处理待分配任务的任务处理设备。
67.在本发明实施例中,可以根据待分配任务的任务运行数据以及任务处理设备运行数据确定满足待分配任务运行需求的任务处理设备,得到备选任务处理设备,进而确定备选任务处理设备中各任务处理设备的当前待处理任务的任务优先级,如果当前任务处理设备的当前待处理任务的任务优先级低于待分配任务,且当前任务处理设备与待分配任务的资源消耗类型对应的资源占用指标优于其他任务处理设备,则将当前任务处理设备作为目标任务处理设备,从而将待分配任务分配至目标任务处理设备。
68.在本发明的一个可选实施例中,在根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备之后,还可以包括:在确定待分配任务为首次调用任务的情况下,获取待分配任务运行时间数据;在确定待分配任务运行时间数据大于或等于运行时间评估阈值的情况下,确定待分配任务的任务运行关联数据;存储待分配任务的任务运行关联数据。
69.其中,待分配任务运行时间数据可以用于表征待分配任务在目标任务处理设备的运行时间。运行时间评估阈值可以是预先设定的时长,用于确定待分配任务的任务运行关联数据。
70.相应的,如果待分配任务为首次调用任务,则进一步确定待分配任务在目标任务处理设备的运行时间,得到待分配任务运行时间数据,并将待分配任务运行时间数据与运行时间评估阈值进行比较,如果待分配任务运行时间数据大于或等于运行时间评估阈值,则获取将待分配任务的任务运行数据,并将待分配任务的任务运行数据作为任务运行关联数据,进而将待分配任务的任务运行关联数据进行存储。
71.在一个具体的例子中,执行任务调度方法的电子设备可以是调度服务器,任务处理设备可以是任务运行服务器。调度服务器可以是执行任务调度方法的服务器,用于管理任务作业时间、任务执行顺序、收集任务运行服务器的节点信息以及部署调度程序等。在传统随机调度方式中,调度服务器在接收到待分配任务之后,会进一步对待分配任务进行解析和配置,如果待分配任务为单一任务,且仅需要分配至一个任务运行服务器,则通过随机算法从管理的多个任务运行服务器中,随机选择一个任务运行服务器,并将待分配任务发
送至选定的任务运行服务器,以使任务运行服务器对待分配任务进行处理。当待分配任务运行失败或任务运行服务器意外宕机时,调度服务器可以按照重调策略,再次在存活的任务运行服务器中随机选取任务运行服务器,直至任务运行服务器完成待分配任务。当存活的任务运行服务器均不满足待分配任务的运行条件时,可以暂停对待分配任务的调度。
72.在传统分片调度方式中,调度服务器在接收到待分配任务之后,会进一步对待分配任务进行解析和配置,如果待分配任务为多个任务,且需要分配至多个任务运行服务器,则通过随机算法从管理的多个任务运行服务器中,选择多个任务运行服务器,并将多个待分配任务随机发送至选定的任务运行服务器,以使任务运行服务器对待分配任务进行处理。
73.无论是分片调度方式还是随机调度方式均无法充分发挥资源效率,可能存在部分任务运行服务器分配了大量消耗资源的作业,部分任务运行服务器资源空闲的情况,导致系统高负荷,甚至引发系统崩溃,使得节点无法正常执行调度任务,还会由于调度不合理产生调度成本高的问题。当调度服务器通过执行本方案的任务调度方法能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
74.图3是本发明实施例二提供的一种任务调度系统的示意图,如图3所示,任务调度系统包括调度服务器、多个一个任务运行服务器以及服务器运行数据收集器,调度服务器可以预先配置任务优先级,如将任务的优先级配置为高、中、低三个等级,还可以监控待分配任务的作业状态、调度策略运行、接收待分配任务以及将待分配任务进行分配等。任务运行服务器可以由多个服务器组成,支持横向扩展。服务器运行数据收集器可以收集任务运行服务器的节点信息(任务名、任务开始时间、任务结束时间、cpu占用率、内存占用率以及io占用率等),并将节点信息进行存储,进而保存1年内的各任务运行服务器的节点信息。节点信息相当于任务处理设备运行数据。服务器运行数据收集器还可以根据1年内各任务运行服务器的节点信息确定待分配任务的任务运行平均占比数据,并将待分配任务归结为cpu消耗型、内存消耗型以及io消耗型中的一种,还可以进一步以图形以及表格等方式展示任务运行服务器的节点信息。
75.如图3所示,首先在调度服务器配置待分配任务、任务优先级并注册任务运行服务器信息。当待分配任务为首次调用任务时,服务器运行数据收集器中并无此任务的任务运行数据,将cpu消耗型(默认任务运行数据)作为待分配任务的任务运行数据,进而根据服务器运行数据收集器收集任务运行服务器的节点信息以确定当前cpu占用率最低的任务运行服务器,并将待分配任务发送至当前cpu占用率最低的任务运行服务器(目标任务处理设备)。在待分配任务运行时间大于30分钟(运行时间评估阈值)后,服务器运行数据收集器可以收集待分配任务运行过程中的任务运行数据,如平均cpu占用率1.5%,内存占用率8%,运行时间30分钟,io占用率1%,并对任务运行数据进行存储,由于内存占用率的百分比高于cpu占用率以及io占用率,因此为待分配任务分配内存消耗标识。当待分配任务再次被调用时,待分配任务为非首次调用任务,可以根据待分配任务分配内存消耗标识,确定当前内存占用最低的任务运行服务器,如果内存占用最低的任务运行服务器的当前待处理任务的任务优先级高于待分配任务,则选择除当前内存占用最低的任务运行服务器外的另一台内存占用次低的任务运行服务器,并判断内存占用次低的任务运行服务器当前待处理任务的任务优先级是否高于待分配任务,如果内存占用次低的任务运行服务器的当前待处理任务
的任务优先级高于待分配任务,则返回执行选择除当前内存占用最低的任务运行服务器外的另一台内存占用次低的任务运行服务器,直至选中符合要求的任务运行服务器,也即当前待处理任务的任务优先级等于或低于待分配任务。如果全部任务运行服务器的当前待处理任务的任务优先级均高于待分配任务,则将待分配任务分配至内存占用最低的任务运行服务器的待处理任务队列中,在任务优先级更高的任务处理完成之后,处理该待分配任务。
76.示例性的,当调度服务器对批量任务进行分布式调度时,任务调度系统可以包括调度服务器、任务运行服务器、分析服务器以及服务器运行数据收集器。其中,分析服务器可以针对服务器运行数据收集器收集的任务运行服务器的节点信息以及待分配任务的资源消耗类型确定调度策略。通过配置分析服务器可以降低对调度服务器的性能要求,减少调度服务器的工作内容,防止调度服务器资源崩溃。
77.图4是本发明实施例二提供的一种任务调度时序的示意图,如图4所示,用户可以向调度服务器发送任务优先级更新数据以及待分配任务以进行作业维护,当调度服务器接收到用户发送的数据之后,向用户返回数据接收成功的响应。当调度服务器根据待分配任务确定任务触发时间为10点20,而当前时间为9点,则调度服务器进行作业等待,当时间到达10点20时,进行作业启动,以通过服务器运行数据收集器进行资源获取,进而由服务器运行数据收集器进行资源收集,获取任务运行服务器a

任务运行服务器n返回的节点信息,进而向调度服务器反馈各任务运行服务器反馈的节点信息,调度服务器根据待分配任务的资源消耗标识将相应资源占用率最低的任务运行服务器作为目标任务处理设备以实现调度策略匹配,进而将待分配任务发送至目标任务处理设备。例如,待分配任务的资源消耗标识为内存消耗标识,而任务运行服务器a的内存消耗在全部任务运行服务器中的内存消耗最低,则将任务运行服务器a作为目标任务处理设备,进而将待分配任务发送至任务运行服务器a,通过对待分配任务进行资源消耗类型的区别,可以更有针对性的为待分配任务分配合理的任务运行服务器,提升整体资源的利用率,避免造成贤能瓶颈。
78.本实施例的技术方案,通过获取待分配任务,进而根据待分配任务确定任务触发时间,在确定到达任务触发时间的情况下,向任务处理设备发送数据采集指令,进而接收任务处理设备根据数据采集指令反馈的任务处理设备运行数据,以进一步确定待分配任务的任务运行数据,从而根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。由于任务处理设备运行数据能够表征任务处理设备的实际运行状态,确定待分配任务的任务运行数据能够明确待分配任务对任务处理设备运行状态的潜在影响,而根据任务处理设备运行状态的潜在影响以及任务处理设备的实际运行状态可以确定能够快速处理待分配任务的目标任务处理设备,因此根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,可以实现对待分配任务的合理调度,减少调度成本,解决了现有技术中任务调度不合理导致的系统高负荷、系统崩溃、调度成本高以及节点无法正常执行调度任务的问题,能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
79.需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
80.实施例三
81.图5是本发明实施例三提供的一种任务调度装置的示意图,如图5所示,所述装置
包括:数据获取模块310、任务运行数据确定模块320以及待分配任务分配模块330,其中:
82.数据获取模块310,用于获取待分配任务以及任务处理设备运行数据;
83.任务运行数据确定模块320,用于确定待分配任务的任务运行数据;
84.待分配任务分配模块330,用于根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
85.本实施例的技术方案,通过获取待分配任务以及任务处理设备运行数据,进而确定待分配任务的任务运行数据,从而根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,由于任务处理设备运行数据能够表征任务处理设备的实际运行状态,确定待分配任务的任务运行数据能够明确待分配任务对任务处理设备运行状态的潜在影响,而根据任务处理设备运行状态的潜在影响以及任务处理设备的实际运行状态可以确定能够快速处理待分配任务的目标任务处理设备,因此根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,可以实现对待分配任务的合理调度,减少调度成本,解决了现有技术中任务调度不合理导致的系统高负荷、系统崩溃、调度成本高以及节点无法正常执行调度任务的问题,能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
86.可选的,数据获取模块310,具体用于根据所述待分配任务确定任务触发时间;在确定到达所述任务触发时间的情况下,向任务处理设备发送数据采集指令;接收所述任务处理设备根据所述数据采集指令反馈的所述任务处理设备运行数据。
87.可选的,任务运行数据确定模块320,具体用于在确定所述待分配任务为首次调用任务的情况下,根据默认任务运行数据确定所述待分配任务的任务运行数据;在确定所述待分配任务为非首次调用任务的情况下,根据所述待分配任务的任务运行关联数据确定所述待分配任务的任务运行数据;其中,所述任务运行关联数据包括cpu占用率数据、内存占用率数据以及io占用率数据。
88.可选的,任务调度装置还包括任务运行数据存储模块,用于在确定待分配任务为首次调用任务的情况下,获取待分配任务运行时间数据;在确定所述待分配任务运行时间数据大于或等于运行时间评估阈值的情况下,确定所述待分配任务的所述任务运行关联数据;存储所述待分配任务的任务运行关联数据。
89.可选的,任务运行数据确定模块320,具体用于获取待分配任务历史运行数据;根据所述待分配任务历史运行数据确定所述待分配任务的任务运行平均占比数据;根据所述待分配任务的任务运行平均占比数据确定所述待分配任务的所述任务运行数据。
90.可选的,任务调度装置还包括当前待处理任务确定模块,用于获取各任务处理设备的待处理任务队列中各待处理任务的任务优先级;根据所述任务优先级确定各所述任务处理设备的当前待处理任务。
91.可选的,待分配任务分配模块330,具体用于根据所述待分配任务的任务运行数据以及所述任务处理设备运行数据确定备选任务处理设备;根据所述备选任务处理设备中各所述任务处理设备的当前待处理任务的任务优先级确定所述目标任务处理设备;将所述待分配任务分配至所述目标任务处理设备。
92.上述任务调度装置可执行本发明任意实施例所提供的任务调度方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意
实施例提供的任务调度方法。
93.由于上述所介绍的任务调度装置为可以执行本发明实施例中的任务调度方法的装置,故而基于本发明实施例中所介绍的任务调度方法,本领域所属技术人员能够了解本实施例的任务调度装置的具体实施方式以及其各种变化形式,所以在此对于该任务调度装置如何实现本发明实施例中的任务调度方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中任务调度方法所采用的装置,都属于本技术所欲保护的范围。
94.实施例四
95.图6为本发明实施例四提供的一种电子设备的结构示意图。图6示出了适于用来实现本发明实施方式的电子设备412的框图。图6显示的电子设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
96.如图6所示,电子设备412以通用计算设备的形式表现。电子设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
97.总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture,isa)总线,微通道体系结构(micro channel architecture,mca)总线,增强型isa总线、视频电子标准协会(video electronics standards association,vesa)局域总线以及外围组件互连(peripheral component interconnect,pci)总线。
98.电子设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
99.存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,ram)430和/或高速缓存存储器432。电子设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(compact disc-read only memory,cd-rom)、数字视盘(digital video disc-read only memory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
100.具有一组(至少一个)程序模块426的程序436,可以存储在例如存储装置428中,这样的程序模块426包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块426通常执行本发明所描述的实施例中的功能和/或方法。
101.电子设备412也可以与一个或多个外部设备414(例如键盘、指向设备、摄像头、显示器424等)通信,还可与一个或者多个使得用户能与该电子设备412交互的设备通信,和/或与使得该电子设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(input/output,i/o)接口422进行。并
且,电子设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(local area network,lan),广域网wide area network,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与电子设备412的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundant arrays of independent disks,raid)系统、磁带驱动器以及数据备份存储系统等。
102.处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的任务调度方法,包括:获取待分配任务以及任务处理设备运行数据;确定待分配任务的任务运行数据;根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
103.本实施例的技术方案,通过获取待分配任务以及任务处理设备运行数据,进而确定待分配任务的任务运行数据,从而根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,由于任务处理设备运行数据能够表征任务处理设备的实际运行状态,确定待分配任务的任务运行数据能够明确待分配任务对任务处理设备运行状态的潜在影响,而根据任务处理设备运行状态的潜在影响以及任务处理设备的实际运行状态可以确定能够快速处理待分配任务的目标任务处理设备,因此根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备,可以实现对待分配任务的合理调度,减少调度成本,解决了现有技术中任务调度不合理导致的系统高负荷、系统崩溃、调度成本高以及节点无法正常执行调度任务的问题,能够合理调度任务,节约调度成本,避免系统高负荷情况的出现,保证调度任务正常执行。
104.实施例五
105.本发明实施例五还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的任务调度方法,包括:获取待分配任务以及任务处理设备运行数据;确定待分配任务的任务运行数据;根据待分配任务的任务运行数据以及任务处理设备运行数据将待分配任务分配至目标任务处理设备。
106.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(read only memory,rom)、可擦式可编程只读存储器((erasable programmable read only memory,eprom)或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
107.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
108.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(radio frequency,rf)等等,或者上述的任意合适的组合。
109.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
110.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1