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

任务调度方法、装置及系统、计算机可读存储介质与流程

2021-11-26 21:47:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别涉及一种任务调度方法、装置及系统、计算机可读存储介质。


背景技术:

2.分布式任务调度系统一般是指以时间触发或者事件触发的方式在计算机上执行相应任务的系统。分布式任务调度系统中包括调度设备(scheduler)和执行设备(executor)。调度设备用于为执行设备分配任务,执行设备用于运行调度设备分配的任务。在分布式任务调度系统中,调度设备可以将一个任务拆分为多个子任务,并将多个子任务下发至多个执行设备,供多个执行设备同步运行,从而提高任务在系统中的运行效率。
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.图1是本技术实施例提供的一种任务调度系统的结构示意图;
34.图2是本技术实施例提供的一种任务调度方法的流程示意图;
35.图3是本技术实施例提供的一种维护调度设备中的目标黑名单的方法流程示意图;
36.图4是本技术实施例提供的执行设备基于窗口检测机制周期性地获取历史任务运行结果的示意图;
37.图5是本技术实施例提供的一种执行设备获取时间窗口内的历史任务运行结果的场景示意图;
38.图6是本技术实施例提供的另一种执行设备获取时间窗口内的历史任务运行结果的场景示意图;
39.图7是本技术实施例提供的一种任务调度装置的结构示意图;
40.图8是本技术实施例提供的另一种任务调度装置的结构示意图;
41.图9是本技术实施例提供的一种任务调度装置的框图。
具体实施方式
42.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
43.图1是本技术实施例提供的一种任务调度系统的结构示意图。如图1所示,该任务调度系统中包括:调度设备101以及执行设备102a-102e(统称为执行设备102)。调度设备101与执行设备102之间可以通过有线网络或无线网络连接。图1中执行设备的数量仅用作示意,不作为对本技术实施例提供的任务调度系统的限制。
44.可选地,本技术实施例提供的任务调度系统为分布式任务调度系统,是由多个服
务器组成的业务集群系统。示例地,该任务调度系统可以是分布式计算(英文:hadoop)另一资源协调器(yet another resource negotiator,yarn)系统。yarn系统是一种分布式任务调度系统,也是一个通用资源管理系统,可以为上层应用提供统一的资源管理和任务调度。
45.调度设备101也可称为调度器或调度节点,具体可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。调度设备101负责整个集群系统的资源管理和任务调度。调度设备101可以将用户提交的任务分解成子任务,然后将子任务分发到资源空闲的执行设备102上运行。如果子任务运行失败,则调度设备101重新调度该子任务。其中,用户向调度设备提交任务指用户向调度设备提交某个应用程序的任务,该应用程序的任务用于实现该应用程序的业务功能。子任务是任务调度系统中的最小调度单位,一个任务通常可以拆分成多个子任务,每个子任务用于实现应用程序中的某个功能。
46.执行设备102也可称为执行节点,具体可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。执行设备102具有中央处理器(central processing unit,cpu)、内存和磁盘等资源。执行设备102可以利用自身资源运行调度设备101分配的任务或子任务。其中,执行设备102上的资源可以是java虚拟机(java virtual machine,jvm)或容器(英文:container)等。
47.本技术实施例中,调度设备101可以为单独的一个设备,或者多个执行设备102中指定的执行设备或者选举得到的执行设备。
48.图2是本技术实施例提供的一种任务调度方法的流程示意图。该方法可以用于如图1所示的任务调度系统。如图2所示,该方法包括:
49.步骤201、调度设备接收第一用户发送的任务调度请求,该任务调度请求中包括待调度任务。
50.可选地,当调度设备接收到第一用户提交的待调度任务时,调度设备确定接收到第一用户发送的任务调度请求。第一用户为能够向调度设备发送任务调度请求的任一用户。该待调度任务用于实现某个特定应用程序的业务功能。
51.可选地,该任务调度请求中还包括第一用户的用户标识,该第一用户的用户标识用于在任务调度系统中唯一标识该第一用户。例如,第一用户的用户标识可以是待调度任务对应的应用程序的登录账号。
52.步骤202、调度设备基于目标黑名单,确定运行待调度任务的一个或多个目标执行设备。
53.该目标黑名单中包括全局黑名单和/或用户黑名单,也即是,目标黑名单包括全局黑名单,或者,目标黑名单包括用户黑名单,又或者,目标黑名单包括全局黑名单和用户黑名单。可选地,目标黑名单包括一个或多个用户黑名单,每个用户黑名单对应一个用户。上述目标执行设备不在全局黑名单中,且该目标执行设备不在第一用户对应的用户黑名单中。目标执行设备指调度设备确定用于运行待调度任务的执行设备。
54.可选地,全局黑名单中包括执行设备的设备标识。执行设备的设备标识可以是执行设备的媒体访问控制(media access control,mac)地址,或者是执行设备的通用唯一识别码(universally unique identifier,uuid),又或者是其它可用于唯一标识执行设备的信息。表1示出了本技术实施例提供的全局黑名单。
55.表1
56.全局黑名单执行设备1执行设备4

57.示例地,参见表1,全局黑名单中包括执行设备1和执行设备4。
58.可选地,用户黑名单中包括用户标识以及对应的执行设备的设备标识。表2示出了本技术实施例提供的用户黑名单。
59.表2
[0060][0061]
示例地,参见表2,用户a对应的用户黑名单中包括执行设备2和执行设备6。用户b对应的用户黑名单中包括执行设备3和执行设备8。
[0062]
可选地,目标黑名单包括全局黑名单和第一用户对应的用户黑名单。当调度设备接收到第一用户发送的任务调度请求时,调度设备检查任务调度系统中的各个执行设备是否在全局黑名单和/或第一用户对应的用户黑名单中,并从任务调度系统中不在全局黑名单且不在第一用户对应的用户黑名单中的执行设备中,获取一个或多个执行设备作为目标执行设备。调度设备可以将任务调度系统中不在全局黑名单且不在第一用户对应的用户黑名单中的执行设备均作为目标执行设备,或者,调度设备可以从任务调度系统中不在全局黑名单且不在第一用户对应的用户黑名单中的执行设备中,随机获取若干个执行设备作为目标执行设备,本技术实施例对此不做限定。
[0063]
示例地,参考如图1所示的任务调度系统,假设全局黑名单中包括执行设备102a,第一用户对应的用户黑名单中包括执行设备102c,则调度设备将执行设备102b、执行设备102d和执行设备102e中的一个或多个执行设备作为目标执行设备。
[0064]
可选地,目标黑名单还包括任务黑名单。则上述目标执行设备也不在待调度任务对应的任务黑名单中。可选地,任务黑名单中包括任务标识以及对应的执行设备的设备标识。
[0065]
本技术实施例中,调度设备在接收到第一用户发送的任务调度请求后,将该任务调度请求中的待调度任务拆分成多个子任务,并在任务调度系统中确定运行该多个子任务的多个目标执行设备,使该多个子任务能够在多个目标执行设备上并行运行,从而提高待调度任务的运行效率。
[0066]
步骤203、调度设备向一个或多个目标执行设备分配待调度任务。
[0067]
可选地,调度设备将该待调度任务拆分成多个子任务,并将该多个子任务分配给一个或多个目标执行设备运行。当调度设备接收到各个目标执行设备对分配的所有子任务的运行成功结果后,调度设备确定运行完成该待调度任务。可选地,当调度设备接收到某个
目标执行设备对分配的子任务的运行失败结果,或者,调度设备在分配子任务后的目标时长内未接收到某个目标执行设备对分配的子任务的运行结果时,调度设备确定该目标执行设备对分配的子任务运行失败,此时调度设备再对该子任务进行重新分配,例如可以分配给其它目标执行设备运行。
[0068]
示例地,参考如图1所示的任务调度系统,假设目标执行设备包括执行设备102b、执行设备102d和执行设备102e。调度设备将待调度任务拆分成子任务1、子任务2和子任务3。调度设备将子任务1分配给执行设备102b运行,将子任务2分配给执行设备102d运行,将子任务3分配给执行设备102e运行。当调度设备接收到执行设备102b对子任务1的运行成功结果,执行设备102d对子任务2的运行成功结果,执行设备102e对子任务3的运行成功结果后,调度设备确定完成该待调度任务。
[0069]
本技术实施例中,由于调度设备中设置有目标黑名单,该目标黑名单包括全局黑名单和/或用户黑名单,调度设备在接收到用户提交的待调度任务后,可以从不在全局黑名单且不在该用户对应的用户黑名单中的执行设备中确定一个或多个目标执行设备,并向目标执行设备分配该待调度任务。通过在调度设备中设置全局黑名单,当执行设备发生故障或自身存在性能问题导致无法运行任务时,将该执行设备加入全局黑名单,则调度设备后续不会给该执行设备分配任务,可以避免调度设备给该执行设备分配任务而导致任务失败,从而提高了任务调度系统的调度成功率。通过在调度设备中设置用户黑名单,由于同一用户提交的任务通常具有相似性,调度设备可以将对某个用户提交的任务多次运行失败的执行节点加入该用户对应的用户黑名单中,则调度设备后续不会给该执行设备分配该用户提交的任务,可以避免调度设备给该执行设备分配该用户提交的任务而导致任务失败,从而提高了任务调度系统的调度成功率。
[0070]
可选地,调度设备中的目标黑名单基于执行设备的任务运行结果进行更新。本技术实施例提供了一种维护调度设备中的目标黑名单的实现方式,如图3所示,该实现过程包括:
[0071]
步骤301、执行设备获取该执行设备在目标时段内的历史任务运行结果。
[0072]
可选地,执行设备周期性地获取该执行设备在目标时段内的历史任务运行结果。该获取周期可以是该目标时段的时长的二分之一。或者,执行设备在指定时刻获取该执行设备在目标时段内的历史任务运行结果。其中,目标时段为执行设备对历史任务运行结果的获取时刻之前的一段时间,该目标时段的时长可以由人为设定。
[0073]
本技术实施例中,执行设备可以基于窗口检测机制周期性地获取历史任务运行结果。示例地,图4是本技术实施例提供的执行设备基于窗口检测机制周期性地获取历史任务运行结果的示意图。如图4所示,执行设备周期性地滑动1/2个窗口长度的距离,并在每个时间窗口的右顶点处获取执行设备在该时间窗口内的历史任务运行结果。
[0074]
可选地,执行设备在目标时段内的历史任务运行结果,包括:该执行设备在目标时段内运行的全部子任务的总数量,该执行设备在目标时段内运行失败的子任务的数量(即执行设备在目标时段内运行的全部子任务中失败子任务的数量),该执行设备在目标时段内运行的每个用户对应的全部子任务的总数量,和/或,该执行设备在目标时段内运行失败的每个用户对应的子任务的数量(即执行设备在目标时段内运行的每个用户对应的全部子任务中失败子任务的数量)。其中,执行设备运行失败的子任务(即失败子任务)指该执行设
备在指定时长内未运行完成的任务。执行设备在目标时段内运行的全部子任务包括该执行设备在目标时段内运行成功的子任务(即成功子任务)和运行失败的子任务。
[0075]
示例地,请继续参见图4,执行设备上运行有用户1、用户2和用户3对应的子任务。该执行设备在时刻t3获取时间窗口w1内的历史任务运行结果,时间窗口w1的开始时刻为时刻t1,结束时刻为时刻t3;该执行设备在时刻t4获取时间窗口w2内的历史任务运行结果,时间窗口w2的开始时刻为时刻t2,结束时刻为时刻t4;该执行设备在时刻t5获取时间窗口w3内的历史任务运行结果,时间窗口w3的开始时刻为时刻t3,结束时刻为时刻t5;以此类推。其中,相邻两个时刻的间隔时长等于1/2个窗口长度。
[0076]
本技术实施例中,执行设备基于窗口检测机制获取历史任务运行结果,充分利用了任务的时间相关性,能够精准预测执行设备对后续子任务的运行结果,且方案简单易于实现。
[0077]
步骤302、执行设备基于该历史任务运行结果,确定该执行设备是否满足加入目标黑名单的条件。
[0078]
在本技术的第一个可选实施例中,目标黑名单包括全局黑名单。则步骤302的实现过程包括:执行设备根据历史任务运行结果,确定该执行设备在目标时段内运行的全部子任务中失败子任务的数量。当该全部子任务中失败子任务的数量大于或等于第一失败数量阈值,和/或,该全部子任务中失败子任务的数量与该全部子任务的数量的比值大于或等于第一失败比例阈值时,执行设备确定该执行设备满足加入全局黑名单的条件。
[0079]
示例地,第一失败数量阈值为10,第一失败比例阈值为70%。图5是本技术实施例提供的一种执行设备获取时间窗口内的历史任务运行结果的场景示意图。假设该执行设备在时刻t2’发生故障。如图5所示,在时刻t3,该执行设备获取时间窗口w1内的历史任务运行结果为:该执行设备在时间窗口w1内运行的全部子任务的数量为11,该全部子任务中失败子任务的数量为6。由于该全部子任务中失败子任务的数量6小于第一失败数量阈值10,且6/11=54%<70%,因此执行设备确定该执行设备在时刻t3不满足加入全局黑名单的条件。在时刻t4,该执行设备获取时间窗口w2内的历史任务运行结果为:该执行设备在时间窗口w2内运行的全部子任务的数量为10,该全部子任务中失败子任务的数量为10。由于该全部子任务中失败子任务的数量10等于第一失败数量阈值10,且10/10=100%>70%,因此执行设备确定该执行设备在时刻t4满足加入全局黑名单的条件。
[0080]
在本技术的第二个可选实施例中,目标黑名单包括用户黑名单。则步骤302的实现过程包括:执行设备根据历史任务运行结果,确定该执行设备在目标时段内运行的目标用户对应的全部子任务中失败子任务的数量。当该目标用户对应的全部子任务中失败子任务的数量大于或等于第二失败数量阈值,和/或,该目标用户对应的全部子任务中失败子任务的数量与该目标用户对应的全部子任务的数量的比值大于或等于第二失败比例阈值时,执行设备确定该执行设备满足加入该目标用户对应的用户黑名单的条件。目标用户为执行设备上运行的子任务对应的任一用户。
[0081]
示例地,第二失败数量阈值为3,第二失败比例阈值为70%。图6是本技术实施例提供的另一种执行设备获取时间窗口内的历史任务运行结果的场景示意图。假设该执行设备在时刻t2’发生部分挂载的磁盘被卸载,而用户1提交的任务需要读写大量数据,用户2和用户3提交的任务则不需要读写大量数据。如图6所示,在时刻t3,该执行设备获取时间窗口w1
内的历史任务运行结果为:该执行设备在时间窗口w1内运行用户1对应的全部子任务的数量为4,用户1对应的全部子任务中失败子任务的数量为2;该执行设备在时间窗口w1内运行用户2对应的全部子任务的数量为4,用户2对应的全部子任务中失败子任务的数量为0;该执行设备在时间窗口w1内运行用户3对应的全部子任务的数量为3,用户3对应的全部子任务中失败子任务的数量为0。由于用户1对应的全部子任务中失败子任务的数量2小于第二失败数量阈值3,且2/4=50%<70%,因此执行设备确定该执行设备在时刻t3不满足加入用户1对应的用户黑名单的条件;同理,执行设备确定该执行设备在时刻t3不满足加入用户2以及用户3对应的用户黑名单的条件。在时刻t4,该执行设备获取时间窗口w2内的历史任务运行结果为:该执行设备在时间窗口w1内运行用户1对应的全部子任务的数量为3,用户1对应的全部子任务中失败子任务的数量为3;该执行设备在时间窗口w1内运行用户2对应的全部子任务的数量为4,用户2对应的全部子任务中失败子任务的数量为0;该执行设备在时间窗口w1内运行用户3对应的全部子任务的数量为3,用户3对应的全部子任务中失败子任务的数量为0。由于该用户1对应的全部子任务中失败子任务的数量3等于第二失败数量阈值3,且3/3=100%>70%,因此执行设备确定该执行设备在时刻t4满足加入用户1对应的用户黑名单的条件;同理,执行设备确定该执行设备在时刻t4不满足加入用户2以及用户3对应的用户黑名单的条件。
[0082]
在本技术的第三个可选实施例中,目标黑名单包括全局黑名单和用户黑名单。则步骤302的实现过程包括:执行设备基于历史任务运行结果,确定该执行设备是否满足加入全局黑名单的条件。当执行设备不满足加入全局黑名单的条件时,执行设备确定该执行设备是否满足加入用户黑名单的条件。
[0083]
本技术实施例中,执行设备先判断该执行设备是否满足加入全局黑名单的条件,当确定该执行设备不满足加入全局黑名单的条件时,再判断该执行设备是否满足加入用户黑名单的条件,避免该执行设备在满足加入全局黑名单的条件的情况下,还要对是否满足加入各个用户对应的用户黑名单的条件进行判断,可以节约执行设备的计算资源。
[0084]
当然,执行设备也可以先检测该执行设备是否满足加入用户黑名单的条件,再检测该执行设备是否满足加入全局黑名单的条件;或者,执行设备可以同步检测该执行设备是否满足加入用户黑名单的条件以及该执行设备是否满足加入全局黑名单的条件,本技术实施例对此不做限定。执行设备确定该执行设备是否满足加入全局黑名单的条件的实现过程可参考上述第一个可选实施例,执行设备确定该执行设备是否满足加入用户黑名单的条件的实现过程可参考上述第二个可选实施例,本技术实施例在此不再赘述。
[0085]
步骤303、当满足加入目标黑名单的条件时,执行设备向调度设备发送目标黑名单加入请求。
[0086]
可选地,当执行设备满足加入全局黑名单的条件时,该执行设备向调度设备发送全局黑名单加入请求,该全局黑名单加入请求中包括该执行设备的设备标识。示例地,参考步骤302中第一个可选实施例中的例子,执行设备在时刻t4向调度设备发送全局黑名单加入请求。
[0087]
可选地,当执行设备满足加入目标用户对应的用户黑名单的条件时,该执行设备向调度设备发送用户黑名单加入请求,该用户黑名单加入请求中包括该执行设备的设备标识以及目标用户的用户标识。示例地,参考步骤302中第二个可选实施例中的例子,执行设
备在时刻t4向调度设备发送用户黑名单加入请求,该用户黑名单加入请求中包括用户1的用户标识。
[0088]
步骤304、调度设备基于该目标黑名单加入请求,将该执行设备添加至目标黑名单中。
[0089]
在一种可能实现方式中,调度设备接收第一执行设备发送的全局黑名单加入请求,该全局黑名单加入请求中包括第一执行设备的设备标识。调度设备基于该全局黑名单加入请求,将第一执行设备添加至全局黑名单中。
[0090]
可选地,调度设备基于该全局黑名单加入请求,将第一执行设备添加至全局黑名单中的实现过程包括:调度设备向第一执行设备发送第一测试任务。当第一执行设备运行该第一测试任务失败时,调度设备将该第一执行设备添加至全局黑名单中。当第一执行设备运行该第一测试任务成功时,调度设备不将该第一执行设备添加至全局黑名单中。
[0091]
可选地,当第一执行设备运行第一测试任务失败时,第一执行设备向调度设备发送确定加入全局黑名单的请求,该确定加入全局黑名单的请求可以是对第一测试任务的运行失败结果。该第一测试任务可以是任务调度系统中运行的任一用户对应的历史子任务。
[0092]
在另一种可能实现方式中,调度设备接收第二执行设备发送的用户黑名单加入请求,该用户黑名单加入请求中包括第二执行设备的设备标识和第二用户的用户标识。调度设备基于该用户黑名单加入请求,将第二执行设备添加至第二用户对应的用户黑名单中。
[0093]
可选地,调度设备基于该用户黑名单加入请求,将第二执行设备添加至第二用户对应的用户黑名单中的实现过程包括:调度设备向第二执行设备发送第二测试任务。当第二执行设备运行第二测试任务失败时,调度设备将第二执行设备添加至第二用户对应的用户黑名单中。当第二执行设备运行第二测试任务成功时,调度设备不将第二执行设备添加至第二用户对应的用户黑名单中。
[0094]
可选地,当第二执行设备运行第二测试任务失败时,第二执行设备向调度设备发送确定加入第二用户对应的用户黑名单的请求,该确定加入第二用户对应的用户黑名单的请求可以是对第二测试任务的运行失败结果。该第二测试任务可以是第二用户对应的历史子任务。
[0095]
本技术实施例中,调度设备在接收到执行设备发送的黑名单加入请求后,向该执行设备发送测试任务,并根据该执行设备对测试任务的运行结果最终确定是否将该执行设备加入黑名单。调度设备在将执行设备加入黑名单之前,二次确认该执行设备的运行性能,提高了黑名单方案的准确度,也可以避免因执行设备短暂性故障而加入黑名单。
[0096]
可选地,上述第一执行设备和第二执行设备可以是同一执行设备,也可以是不同的执行设备,本技术实施例对此不做限定。
[0097]
步骤305、当目标黑名单中的任一黑名单中存在在该任一黑名单中的持续时长达到目标时长的第三执行设备时,调度设备删除该任一黑名单中的该第三执行设备。
[0098]
本技术实施例中,全局黑名单和用户黑名单可以基于执行设备的任务运行结果动态更新。且全局黑名单和用户黑名单中均具有时效性,当某个执行设备加入全局黑名单或用户黑名单的持续时长达到目标时长时,调度设备将该执行设备从全局黑名单或用户黑名单删除。
[0099]
可选地,调度设备中的全局黑名单和用户黑名单也可以由调度设备根据执行设备
反馈的任务运行结果自行更新。例如,调度设备可以获取执行设备在目标时段内的历史任务运行结果,并基于该历史任务运行结果,确定该执行设备是否满足加入目标黑名单的条件,在确定该执行设备满足加入目标黑名单的条件后,将该执行设备添加至目标黑名单中。则执行设备可以不执行上述步骤301至步骤303。
[0100]
需要说明的是,本技术实施例提供的任务调度方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内,因此不再赘述。
[0101]
综上所述,本技术实施例提供的任务调度方法,由于调度设备中设置有目标黑名单,该目标黑名单包括全局黑名单和/或用户黑名单,调度设备在接收到用户提交的待调度任务后,可以从不在全局黑名单且不在该用户对应的用户黑名单中的执行设备中确定一个或多个目标执行设备,并向目标执行设备分配该待调度任务。通过在调度设备中设置全局黑名单,当执行设备发生故障或自身存在性能问题导致无法运行任务时,将该执行设备加入全局黑名单,则调度设备后续不会给该执行设备分配任务,可以避免调度设备给该执行设备分配任务而导致任务失败,从而提高了任务调度系统的调度成功率。通过在调度设备中设置用户黑名单,由于同一用户提交的任务通常具有相似性,调度设备可以将对某个用户提交的任务多次运行失败的执行节点加入该用户对应的用户黑名单中,则调度设备后续不会给该执行设备分配该用户提交的任务,可以避免调度设备给该执行设备分配该用户提交的任务而导致任务失败,从而提高了任务调度系统的调度成功率。另外,全局黑名单和用户黑名单可以互补,全局黑名单可以解决执行设备对加入每个用户的用户黑名单的条件都不满足,但任务整体运行情况较差的场景;用户黑名单可以针对某个用户特定的任务运行需求设置黑名单,避免将不满足某个用户提交的任务的执行设备加入全局黑名单中而造成资源浪费。
[0102]
图7是本技术实施例提供的一种任务调度装置的结构示意图。该装置可以用于如图1所示的任务调度系统中的调度设备101。如图7所示,该装置70包括:
[0103]
接收模块701,用于接收第一用户发送的任务调度请求,该任务调度请求中包括待调度任务。
[0104]
处理模块702,用于基于目标黑名单,确定运行待调度任务的一个或多个目标执行设备,目标黑名单中包括全局黑名单和/或用户黑名单,目标执行设备不在全局黑名单中,目标执行设备不在第一用户对应的用户黑名单中。
[0105]
发送模块703,用于向一个或多个目标执行设备分配待调度任务。
[0106]
可选地,目标黑名单中包括全局黑名单,接收模块701,还用于接收第一执行设备发送的全局黑名单加入请求,全局黑名单加入请求中包括第一执行设备的设备标识;处理模块702,还用于基于全局黑名单加入请求,将第一执行设备添加至全局黑名单中。
[0107]
可选地,处理模块702,还用于:通过发送模块向第一执行设备发送第一测试任务;当第一执行设备运行第一测试任务失败时,将第一执行设备添加至全局黑名单中;当第一执行设备运行第一测试任务成功时,不将第一执行设备添加至全局黑名单中。
[0108]
可选地,目标黑名单中包括用户黑名单,接收模块701,还用于接收第二执行设备发送的用户黑名单加入请求,用户黑名单加入请求中包括第二执行设备的设备标识和第二
用户的用户标识;处理模块702,还用于基于用户黑名单加入请求,将第二执行设备添加至第二用户对应的用户黑名单中。
[0109]
可选地,处理模块702,还用于:通过发送模块向第二执行设备发送第二测试任务;当第二执行设备运行第二测试任务失败时,将第二执行设备添加至第二用户对应的用户黑名单中;当第二执行设备运行第二测试任务成功时,不将第二执行设备添加至第二用户对应的用户黑名单中。
[0110]
可选地,处理模块702,还用于:当目标黑名单中的任一黑名单中存在在任一黑名单中的持续时长达到目标时长的第三执行设备时,删除任一黑名单中的第三执行设备。
[0111]
综上所述,在本技术实施例提供的任务调度装置中,通过在调度设备中设置全局黑名单,当执行设备发生故障或自身存在性能问题导致无法运行任务时,将该执行设备加入全局黑名单,则调度设备后续不会给该执行设备分配任务,可以避免调度设备给该执行设备分配任务而导致任务失败,从而提高了任务调度系统的调度成功率。通过在调度设备中设置用户黑名单,由于同一用户提交的任务通常具有相似性,调度设备可以将对某个用户提交的任务多次运行失败的执行节点加入该用户对应的用户黑名单中,则调度设备后续不会给该执行设备分配该用户提交的任务,可以避免调度设备给该执行设备分配该用户提交的任务而导致任务失败,从而提高了任务调度系统的调度成功率。
[0112]
图8是本技术实施例提供的另一种任务调度装置的结构示意图。该装置可以用于如图1所示的任务调度系统中的执行设备102。如图8所示,该装置80包括:
[0113]
获取模块801,用于获取执行设备在目标时段内的历史任务运行结果。
[0114]
处理模块802,用于基于历史任务运行结果,确定执行设备是否满足加入目标黑名单的条件,目标黑名单包括全局黑名单和/或用户黑名单,该目标黑名单供调度设备进行任务调度。
[0115]
发送模块803,用于当执行设备满足加入目标黑名单的条件时,向调度设备发送目标黑名单加入请求。
[0116]
可选地,处理模块802,用于:根据历史任务运行结果,确定执行设备在目标时段内运行的全部子任务中失败子任务的数量;当全部子任务中失败子任务的数量大于或等于第一失败数量阈值,和/或,全部子任务中失败子任务的数量与全部子任务的数量的比值大于或等于第一失败比例阈值时,确定执行设备满足加入全局黑名单的条件。
[0117]
可选地,处理模块802,用于:根据历史任务运行结果,确定执行设备在目标时段内运行的目标用户对应的全部子任务中失败子任务的数量;当目标用户对应的全部子任务中失败子任务的数量大于或等于第二失败数量阈值,和/或,目标用户对应的全部子任务中失败子任务的数量与目标用户对应的全部子任务的数量的比值大于或等于第二失败比例阈值时,确定执行设备满足加入目标用户对应的用户黑名单的条件。
[0118]
可选地,目标黑名单包括全局黑名单和用户黑名单,处理模块,用于:基于历史任务运行结果,确定执行设备是否满足加入全局黑名单的条件;当执行设备不满足加入全局黑名单的条件时,确定执行设备是否满足加入用户黑名单的条件。
[0119]
综上所述,在本技术实施例提供的任务调度装置中,通过在调度设备中设置全局黑名单,当执行设备发生故障或自身存在性能问题导致无法运行任务时,将该执行设备加入全局黑名单,则调度设备后续不会给该执行设备分配任务,可以避免调度设备给该执行
设备分配任务而导致任务失败,从而提高了任务调度系统的调度成功率。通过在调度设备中设置用户黑名单,由于同一用户提交的任务通常具有相似性,调度设备可以将对某个用户提交的任务多次运行失败的执行节点加入该用户对应的用户黑名单中,则调度设备后续不会给该执行设备分配该用户提交的任务,可以避免调度设备给该执行设备分配该用户提交的任务而导致任务失败,从而提高了任务调度系统的调度成功率。
[0120]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0121]
本技术实施例提供了一种调度设备,包括:处理器和存储器;
[0122]
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0123]
所述处理器,用于调用所述计算机程序,实现上述方法实施例中调度设备执行的动作。
[0124]
本技术实施例提供了一种执行设备,包括:处理器和存储器;
[0125]
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
[0126]
所述处理器,用于调用所述计算机程序,实现上述方法实施例中执行设备执行的动作。
[0127]
示例地,图9是本技术实施例提供的一种任务调度装置的框图。该数据流接纳装置可以是调度设备或执行设备。如图9所示,任务调度装置90包括:处理器901和存储器902。
[0128]
存储器902,用于存储计算机程序,所述计算机程序包括程序指令;
[0129]
处理器901,用于调用所述计算机程序,实现上述方法实施例中调度设备或执行设备执行的动作。
[0130]
可选地,该任务调度装置90还包括通信总线903和通信接口904。
[0131]
其中,处理器901包括一个或者一个以上处理核心,处理器901通过运行计算机程序,执行各种功能应用以及数据处理。
[0132]
存储器902可用于存储计算机程序。可选地,存储器可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(real time executive,rtx)、linux、unix、windows或os x之类的操作系统。
[0133]
通信接口904可以为多个,通信接口904用于与其它设备进行通信。例如在本技术实施例中,当该任务调度装置90为调度设备时,通信接口904可以用于向执行设备发送待调度任务的子任务。
[0134]
存储器902与通信接口904分别通过通信总线903与处理器901连接。
[0135]
本技术实施例提供了一种任务调度系统,包括:调度设备和执行设备,所述调度设备包括如图7或图9所示的任务调度装置,所述执行设备包括如图8或图9所示的任务调度装置。
[0136]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令被计算机设备的处理器执行时,实现上述方法实施例中调度设备或执行设备执行的动作。
[0137]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0138]
在本技术实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0139]
本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0140]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献