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

专利检索2022-05-10  14



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.所述执行所述当前任务之后,所述方法还包括:
46.在所述当前任务执行成功的情况下,清理所述临时文件夹,并向所述服务端发起第二任务状态更改请求;所述第二任务状态更改请求用于将所述当前任务的状态更改为执行成功状态。
47.这里,通过临时文件夹的创建与清理操作,实现了当前任务所需数据的临时性存储,存储利用率较高。
48.第二方面,本公开实施例还提供了一种任务调度的装置,所述装置包括:
49.发起模块,用于在用户端所在系统环境下成功部署目标守护进程的情况下,基于所述目标守护进程向服务端发起任务获取请求;
50.判断模块,用于在根据所述任务获取请求获取到当前任务的情况下,判断执行所述当前任务所需的系统环境是否与所述用户端所在系统环境相匹配;
51.调度模块,用于响应于执行所述当前任务所需的系统环境与所述用户端所在系统环境相匹配,基于所述当前任务指示的任务配置信息执行所述当前任务。
52.第三方面,本公开实施例还提供了一种任务调度的系统,所述系统包括:至少一个用户端和服务端;
53.至少一个所述用户端,用于在所述用户端所在系统环境下成功部署目标守护进程的情况下,基于所述目标守护进程向服务端发起任务获取请求;在根据所述任务获取请求获取到当前任务的情况下,判断执行所述当前任务所需的系统环境是否与所述用户端所在系统环境相匹配;响应于执行所述当前任务所需的系统环境与所述用户端所在系统环境相匹配,基于所述当前任务指示的任务配置信息执行所述当前任务;
54.所述服务端,用于接收至少一个所述用户端发起的任务获取请求;根据所述任务获取请求,将当前任务的任务信息发送至所述用户端。
55.在一种可能的实施方式中,所述服务端,还用于:
56.接收所述用户端执行所述当前任务的任务执行结果。
57.在一种可能的实施方式中,所述系统还包括:用户平台输入接口;
58.所述用户平台输入接口,用于获取包括多个目标任务的工作流配置信息,并将所述工作流配置信息发送至所述服务端;
59.所述服务端,还用于基于所述工作流配置信息创建针对多个目标任务的工作流任务,基于所述工作流任务指示的多个目标任务的执行顺序广播所述多个目标任务的信息。
60.第四方面,本公开实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一所述的任务调度的方法的步骤。
61.第五方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一所述的任务调度的方法的步骤。
62.关于上述任务调度的装置、电子设备、及计算机可读存储介质的效果描述参见上述任务调度的方法的说明,这里不再赘述。
63.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
64.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
65.图1示出了本公开实施例所提供的一种任务调度的系统的示意图;
66.图2示出了本公开实施例所提供的一种任务调度的方法的流程图;
67.图3示出了本公开实施例所提供的一种任务调度的装置的示意图;
68.图4示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
69.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
70.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
71.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
72.经研究发现,相关技术中,针对特定应用场景需要设置特定系统环境下的任务调度系统以满足用户的场景需求,显然这已经无法满足随着大数据技术所产生的各种应用场景的任务调度需求。
73.此外,随着系统环境的多样化,以及容器云的推广,传统的工作流任务调度,不能覆盖多系统环境,就显得非常局限。
74.基于上述研究,本公开提供了一种任务调度的方法、装置、系统、电子设备及存储介质,以满足随着大数据技术所产生的各种应用场景的任务调度需求。
75.为便于对本实施例进行理解,首先对本公开实施例所公开的一种任务调度的系统进行详细介绍。如图1所示,本公开实施例所提供的任务调度的系统包括:至少一个用户端101和服务端102;
76.至少一个用户端101,用于在用户端101所在系统环境下成功部署目标守护进程的情况下,基于目标守护进程向服务端102发起任务获取请求;在根据任务获取请求获取到当前任务的情况下,判断执行当前任务所需的系统环境是否与用户端101所在系统环境相匹配;响应于执行当前任务所需的系统环境与用户端101所在系统环境相匹配,基于当前任务指示的任务配置信息执行当前任务;
77.服务端102,用于接收至少一个用户端101发起的任务获取请求;根据任务获取请求,将当前任务的任务信息发送至用户端101。
78.本公开实施例提供的任务调度的系统中的服务端102可以对应有一个或多个用户端101,每个用户端101所在系统环境可以相同也可以不同。在服务端102具备任务执行需求的情况下,服务端102可以广播当前任务的信息。各个用户端101在所在系统环境下可以部署目标守护进程,不同系统环境的用户端101所部署的目标守护进程也不相同。在用户端101成功部署目标守护进程的情况下,用户端101每隔一段时间向服务端102发送任务获取请求。
79.在一个用户端101根据任务获取请求获取到当前任务的情况下,首先可以判断执行当前任务所需的系统环境是否与用户端101所在系统环境相匹配,在确定两个系统环境匹配的情况下,也即说明该用户端101具备执行当前任务的系统环境,这时即可以基于当前任务指示的任务配置信息执行当前任务。执行任务完成后,客户端可以生成执行当前任务的任务执行结果并返回至服务端102,服务端102可以接收这一任务执行结果。这里的任务执行结果不仅包括任务成功执行的结果,还可以包括任务失败执行的结果,在任务失败的情况下,可以重新发布当前任务的信息,以便于其他符合条件的用户端101可以获取这一任务并执行。
80.考虑到本公开实施例提供的任务调度的系统可以是针对跨系统环境的任务调度,上述任务调度可以是针对多个目标任务的工作流任务。如图1所示,上述系统还可以包括用户平台输入接口103,通过这一接口可以获取包括多个目标任务的工作流配置信息,并将工
作流配置信息发送至服务端102,服务端102则可以基于工作流配置信息创建针对多个目标任务的工作流任务,基于工作流任务指示的多个目标任务的执行顺序广播多个目标任务的信息。
81.其中,上述用户平台输入接口103主要是面向用户,用于创建任务组件(component)、创建工作流任务(pipeline),选择执行环境,配置工作流任务的输入参数、输入文件、输出参数、输出文件等,执行任务以及查看任务状态、日志、结果等操作的用户平台。
82.上述服务端102主要用于接收和处理来自用户端101或用户平台的请求,包括目标守护进程的注册部署请求、以及可以调度的任务信息、目标守护进程上传下载任务脚本及其相关文件或参数、改变任务的状态等,还可以是来自用户平台输入接口103的创建component接口,创建pipeline接口,执行工作流任务,查看任务状态以及日志等,以及用户平台输入接口103请求的接收和处理等。
83.上述用户端101则主要用于进行具体的任务获取、配置、执行等操作。接下来将通过任务调度的方法进行具体说明。
84.参见图2所示,为本公开实施例提供的任务调度方法的流程图,方法包括步骤s201~s203,其中:
85.s201:在用户端101所在系统环境下成功部署目标守护进程的情况下,基于目标守护进程向服务端102发起任务获取请求;
86.s202:在根据任务获取请求获取到当前任务的情况下,判断执行当前任务所需的系统环境是否与用户端101所在系统环境相匹配;
87.s203:响应于执行当前任务所需的系统环境与用户端101所在系统环境相匹配,基于当前任务指示的任务配置信息执行当前任务。
88.为了便于理解本公开实施例提供的任务调度的方法,接下来对该方法的应用场景进行简单介绍。本公开实施例中的任务调度的方法主要可以应用于任何需要进行任务调度的应用场景中,例如,可以是基于单一系统环境下的任务调度,也可以是基于多系统环境下的任务调度。以多系统环境下的工作流任务调度为例,所属系统环境不同的用户端101可以对应执行服务端102广播的工作流任务中的一个或多个任务,通过服务端102与用户端101的交互,可以实现整个工作流任务的顺序执行。
89.其中,在用户端101所在系统环境上部署目标守护进程executor时,会向服务端102发送注册executor的请求。当executor成功注册部署后,用户端101可以基于executor向服务端102发起任务获取请求,例如,可以根据部署时配置的时间间隔,每隔一段时间向服务端102发送拉取任务的请求。
90.在具体应用中,上述目标守护进程可以是工作在daemon层级的进程。
91.本公开实施例中,用户端101在根据任务获取请求获取到当前任务的情况下,可以判断执行当前任务所需的系统环境是否与用户端101所在系统环境相匹配,在两个系统环境不相匹配的情况下,说明用户端101不具备执行当前任务的系统环境;在两个系统环境相匹配的情况下,说明用户端101具备执行当前任务的系统环境,进而可以基于当前任务指示的任务配置信息执行当前任务。
92.其中,上述有关任务配置信息可以是执行当前任务所需的相关配置信息,例如,可
以是一些任务输入参数等信息。
93.这里,在当前任务执行完成后,将任务执行结果返回至服务端102,服务端102用于广播包含任务执行结果的下一个任务信息。这里的下一个任务可以是以当前任务的任务执行结果为输入的任务,且本技术实施例提供的任务调度的方法支持下一个任务所需系统环境与当前任务所需系统环境不同的跨系统环境之间的任务调度。
94.本公开实施例中,具体可以按照如下步骤确定两个系统环境是否相匹配:
95.步骤一、基于各进程标识号与各系统环境之间的对应关系,确定与用户端101所在系统环境对应的目标守护进程的进程标识号;
96.步骤二、判断当前任务指示的进程标识号与目标守护进程的进程标识号是否一致;
97.步骤三、响应于当前任务指示的进程标识号与目标守护进程的进程标识号一致,确定当前任务所需的系统环境与用户端101所在系统环境相匹配。
98.这里,当用户端101拉取到任务指示的executor_id为当前部署的executor的id的时候,就会占据一个坑位,标识当前有新的任务将要被调度执行。其中,这个坑位的数量,可以是executor行处理的任务数量,可以在部署executor时进行配置。
99.在两个系统环境相一致的情况下,本公开实施例中的用户端101可以先进行任务配置,再实现具体的任务执行,具体可以通过如下步骤来实现:
100.步骤一、响应于当前任务所需的系统环境与用户端101所在系统环境相匹配,启动与目标守护进程对应的任务配置进程;
101.步骤二、基于任务配置进程,获取当前任务的任务配置信息;
102.步骤三、从各种预设任务执行方式中选取与当前任务的任务配置信息匹配的任务执行方式;
103.步骤四、启动与选取的任务执行方式对应的任务执行进程;
104.步骤五、基于任务执行进程执行当前任务。
105.这里,为了实现各个进程之间的独立工作,可以将不同的进程划分到不同的层级,例如,可以将目标守护进程、任务配置进程和任务执行进程分别划分至daemon层级、scheduler层级和exec层级,这样,即使在一个层级中的进程发生执行错误的情况下,也不会影响其它层级的进程执行。
106.在具体应用中,为了确保各个进程之间的联动反应,可以基于主进程与子进程之间的关联关系进行上述三个进程之间的创建和启动。
107.其中,响应于当前任务所需的系统环境与用户端101所在系统环境相匹配,可以创建与目标守护进程相关联的子进程,并可以将创建的与目标守护进程相关联的子进程作为任务配置进程。另外,还可以创建与任务配置进程相关联的子进程,并可以将创建的任务配置进程相关联的子进程作为任务执行进程。
108.在具体应用中,在当前任务被标记为将要被调度执行后,daemon进程(即目标守护进程)可以启动一个子进程来调度这个任务,这个子进程就是scheduler层级的进程(即任务配置进程)。scheduler进程可以根据这个任务的scheduler配置,来选择不同的执行方式去执行,任务就会到达exec层级的进程(即任务执行进程)来执行任务。
109.在执行任务的过程中,若所对应配置的任务配置信息不同,所确定的任务执行方
式也并不同。
110.在任务配置信息包括自定义对象配置信息的情况下,确定与当前任务匹配的任务执行方式包括第一命令行执行方式。例如,当前任务的schedler配置的是k8s相关配置,可以通过kubectl创建一个mpirun类型的k8s自定义对象,mpirun将会创建pod,然后在pod里会启动executor的exec层级的进程来执行任务,也即可以以pod命令行执行方式来执行任务。
111.在任务配置信息包括系统资源配置信息的情况下,确定与当前任务匹配的任务执行方式包括第二命令行执行方式。例如,当前任务的scheduler配置的是slurm相关配置,scheduler进程可以通过srun的方式启动一个exec层级的进程来执行任务,也即可以以srun命令行执行方式来执行任务。
112.在任务配置信息包括远程设备配置信息的情况下,确定与当前任务匹配的任务执行方式包括远程协议执行方式。例如,当前任务的scheduler配置的是一个远程设备的相关配置,scheduler进程可以通过ssh和sftp的方式在远程设备上启动一个exec层级的进程来执行任务和上传下载文件。
113.在执行当前任务的过程中可以依赖于从服务端102下载当前任务的任务脚本以及脚本输入参数,而后通过执行关联有脚本输入参数的任务脚本,执行当前任务。
114.在执行任务的过程中,为了确保服务端102与用户端101的状态同步,这里需要将用户端101的任务执行情况及时的反馈至服务端102。
115.其中,基于任务执行进程,可以向服务端102发送针对当前任务的第一任务状态更改请求,在服务端102基于第一任务状态更改请求更改运行状态成功之后,用户端101可以从服务端102下载当前任务的任务脚本以及脚本输入参数。
116.另外,用户端101还可以利用创建的临时文件夹,对下载的当前任务的任务脚本以及脚本输入参数进行存储,在当前任务执行成功的情况下,清理临时文件夹,并向服务端102发起第二任务状态更改请求,也即,及时将任务执行成功的状态反馈至服务端102以便于服务端102可以进行下一步的调度工作。
117.可知的是,无论scheduler层级选择了怎样的任务执行方式,exec层级的进程在执行任务的时候,首先exec进程会向服务端102发送一个改变任务状态为running(运行状态)的请求,然后exec进程会创建当前任务执行时的临时文件夹,接着会下载任务脚本,以及下载任务相关的输入文件,并且会将任务的输入参数注入到当前exec层级的进程下的环境变量中。
118.在这些准备工作完成后,exec进程开始执行任务脚本,在任务执行过程中如果有任何错误出现,exec进程会向服务端102发送一个改变任务状态为failed(执行失败状态)的请求。
119.如果任务正常执行完成后,exec进程会跟服务端102进行通信并上传输出文件和输出结果数据,然后exec进程会清理当前任务执行的临时文件夹,最后exec进程会向服务端102发送一个改变任务状态为succeeded(执行成功状态)的请求,至此用户端101整个任务调度过程结束,可以进行下一轮的任务调度。
120.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功
能和可能的内在逻辑确定。
121.基于同一发明构思,本公开实施例中还提供了与任务调度的方法对应的任务调度的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务调度的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
122.参照图3所示,为本公开实施例提供的一种任务调度的装置的示意图,装置包括:发起模块301、判断模块302、调度模块303;其中,
123.发起模块301,用于在用户端所在系统环境下成功部署目标守护进程的情况下,基于目标守护进程向服务端发起任务获取请求;
124.判断模块302,用于在根据任务获取请求获取到当前任务的情况下,判断执行当前任务所需的系统环境是否与用户端所在系统环境相匹配;
125.调度模块303,用于响应于执行当前任务所需的系统环境与用户端所在系统环境相匹配,基于当前任务指示的任务配置信息执行当前任务。
126.采用上述任务调度的装置,在用户端所在系统环境下成功部署目标守护进程的情况下,可以基于目标守护进程向服务端发起任务获取请求,并能够在获取到当前任务的情况下,判断执行当前任务所需的系统环境是否与用户端所在系统环境相匹配,在两个系统环境相匹配的情况下,即可以基于当前任务指示的任务配置信息执行当前任务。本公开基于目标守护进程的部署可以自动拉取并执行与所在系统环境匹配的当前任务,也即,不管是什么系统环境均可以部署对应的目标守护进程以实现任务调度,不仅可以应用于各种应用场景下有关特定系统环境的任务调度,还可以支持服务端在跨系统环境下的任务调度。
127.在一种可能的实施方式中,装置还包括:
128.返回模块304,用于在当前任务执行完成后,将任务执行结果返回至服务端,服务端用于广播包含任务执行结果的下一个任务信息。
129.在一种可能的实施方式中,判断模块302,用于按照如下步骤判断执行当前任务所需的系统环境是否与用户端所在系统环境相匹配:
130.基于各进程标识号与各系统环境之间的对应关系,确定与用户端所在系统环境对应的目标守护进程的进程标识号;
131.判断当前任务指示的进程标识号与目标守护进程的进程标识号是否一致;
132.响应于当前任务指示的进程标识号与目标守护进程的进程标识号一致,确定当前任务所需的系统环境与用户端所在系统环境相匹配。
133.在一种可能的实施方式中,调度模块303,用于按照如下步骤基于当前任务指示的任务配置信息执行当前任务:
134.响应于当前任务所需的系统环境与用户端所在系统环境相匹配,启动与目标守护进程对应的任务配置进程;
135.基于任务配置进程,获取当前任务的任务配置信息;
136.从各种预设任务执行方式中选取与当前任务的任务配置信息匹配的任务执行方式;
137.启动与选取的任务执行方式对应的任务执行进程;
138.基于任务执行进程执行当前任务。
139.在一种可能的实施方式中,调度模块303,用于按照如下步骤启动与目标守护进程
对应的任务配置进程:
140.响应于当前任务所需的系统环境与用户端所在系统环境相匹配,创建与目标守护进程相关联的子进程;
141.将创建的与目标守护进程相关联的子进程作为任务配置进程,并启动任务配置进程;
142.调度模块303,用于按照如下步骤启动与选取的任务执行方式对应的任务执行进程:
143.创建与任务配置进程相关联的子进程;
144.将创建的任务配置进程相关联的子进程作为任务执行进程,并启动任务执行进程。
145.在一种可能的实施方式中,调度模块303,用于按照如下步骤从各种预设任务执行方式中选取与当前任务的任务配置信息匹配的任务执行方式:
146.在任务配置信息包括自定义对象配置信息的情况下,确定与当前任务匹配的任务执行方式包括第一命令行执行方式;
147.在任务配置信息包括系统资源配置信息的情况下,确定与当前任务匹配的任务执行方式包括第二命令行执行方式;第二命令行执行方式与第一命令行执行方式对应的命令代码不同;
148.在任务配置信息包括远程设备配置信息的情况下,确定与当前任务匹配的任务执行方式包括远程协议执行方式。
149.在一种可能的实施方式中,调度模块303,用于按照如下步骤基于任务执行进程执行当前任务:
150.基于任务执行进程,从服务端下载当前任务的任务脚本以及脚本输入参数;
151.通过执行关联有脚本输入参数的任务脚本,执行当前任务。
152.在一种可能的实施方式中,调度模块303,用于按照如下步骤从服务端下载当前任务的任务脚本以及脚本输入参数:
153.从服务端下载当前任务的任务脚本以及脚本输入参数之前,基于任务执行进程,向服务端发送针对当前任务的第一任务状态更改请求;第一任务状态更改请求用于将当前任务的状态更改为运行状态;
154.在当前任务的状态更改为运行状态的情况下,从服务端下载当前任务的任务脚本以及脚本输入参数。
155.在一种可能的实施方式中,调度模块303,还用于:
156.从服务端下载当前任务的任务脚本以及脚本输入参数之后,利用创建的临时文件夹,对下载的当前任务的任务脚本以及脚本输入参数进行存储;
157.执行当前任务之后,在当前任务执行成功的情况下,清理临时文件夹,并向服务端发起第二任务状态更改请求;第二任务状态更改请求用于将当前任务的状态更改为执行成功状态。
158.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
159.本公开实施例还提供了一种电子设备,如图4所示,为本公开实施例提供的电子设
备结构示意图,包括:处理器401、存储器402、和总线403。存储器402存储有处理器401可执行的机器可读指令(比如,图3中的装置中发起模块301、判断模块302、调度模块303对应的执行指令等),当电子设备运行时,处理器401与存储器402之间通过总线403通信,机器可读指令被处理器401执行时执行如下处理:
160.在用户端所在系统环境下成功部署目标守护进程的情况下,基于目标守护进程向服务端发起任务获取请求;
161.在根据任务获取请求获取到当前任务的情况下,判断执行当前任务所需的系统环境是否与用户端所在系统环境相匹配;
162.响应于执行当前任务所需的系统环境与用户端所在系统环境相匹配,基于当前任务指示的任务配置信息执行当前任务。
163.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务调度的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
164.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的任务调度的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
165.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
166.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
167.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
168.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
169.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务端,或者网络设备等)执行本公开各个实施例所述
方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
170.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
转载请注明原文地址:https://win.8miu.com/read-150415.html

最新回复(0)