任务状态的确定方法、装置和处理器与流程

未命名 08-14 阅读:78 评论:0


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.图7是根据本技术实施例提供的一种终端触发请求的示意图;
26.图8是根据本技术实施例的一种任务状态的确定装置的示意图;
27.图9是根据本技术实施例的一种用于任务状态的确定方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
28.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
29.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的每个其他实施例,都应当属于本技术保护的范围。
30.需要说明的是,本技术的说明书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.为了便于描述,以下对本技术实施例涉及的部分名词或术语进行说明:
32.开源的应用容器引擎(docker),可以用于让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的操作系统(比如,linux、windows等)的机器上,也可以实现虚拟化,容器引擎中的容器是完全使用沙箱机制,相互之间不会有任何接口;
33.开源的应用容器引擎镜像(docker镜像),用于提供运行时所需要的程序、库、资源、配置等文件,还包含了一些为运行时准备的一些配置参数(比如,匿名卷、环境变量、用户等),镜像不包含任何动态数据,其内容在构建之后也不会被改变。
34.实施例一
35.需要说明的是,本技术中的任务状态的确定方法及其装置可用于数据处理领域在对任务状态进行确定的情况下,也可用于除数据处理领域之外的任意领域在对任务状态进行管理的情况下,本技术中对任务状态的确定方法的应用领域不做限定。
36.下面结合优选的实施步骤对本技术进行说明。
37.为解决代理服务的发布或启动导致任务异常的问题,本技术实施例,提供了一种任务状态的确定方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
38.图1是根据本技术实施例提供的一种任务状态的确定方法的流程图,如图1所示,该方法包括如下步骤:
39.步骤s102,响应于获取到来自终端的任务请求数据,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且控制代理服务启动目标容器中的目标任务运行;
40.步骤s104,响应于目标容器中的目标任务运行,将目标任务的任务信息存储于数据库中,其中,任务信息用于表征目标容器和在目标容器中运行的任务二者之间的对应关系;
41.步骤s106,响应于重启代理服务,从数据库中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态。
42.通过上述步骤,当终端想要进行任务调度时,可以发出任务请求数据。物理控制机响应于获取到来自终端的任务请求数据,可以控制代理服务将任务请求数据请求的目标任务下发至与代理服务匹配的目标容器中,且控制代理服务启动目标容器中的目标任务运行。响应于目标容器中的目标任务运行,可以将目标任务的任务信息存储在数据库中。当重新启动(简称为重启)代理服务时,可以从数据库中确定包含目标容器的任务信息,从而可以从任务信息中确定目标任务的运行状态。其中,终端可以为想要执行调度任务的用户、移动终端等,此处仅为举例,不对终端类型做具体限制。任务请求数据可以为终端发出的用于请求目标任务所需要的资源。目标任务可以为由线程执行的内容,可以为调度任务。目标容器可以为开放软件平台中的容器(比如,docker容器)。任务信息可以用于表征目标容器和在目标容器中运行的目标任务二者之间的对应关系,可以包括目标任务的属性信息,比如,任务信息可以包括关联的目标容器的身份信息和目标任务的身份信息之间的对应关系、包含目标任务的实例状态、目标任务的运行状态等,此处仅为举例,不对任务信息的内容做具体限制。数据库可以用于存储目标任务的任务信息,可以为任意用于存储数据的数据库(比如,可以为mysql数据库),此处仅为举例,不对数据库种类做具体限制。
43.在该实施例中,执行机集群可以包含若干物理机,其中,一个是物理控制机,其余为物理执行机。物理控制机可以包含一个控制机服务,负责分发路由调度任务,可以将调度任务(目标任务)路由到任意物理执行机。可以控制代理服务执行控制机分发下来的目标任务,一个物理机可以运行若干目标容器,目标容器与目标任务之间一一对应,目标任务的生命周期就是目标容器的生命周期。
44.可选地,终端可以发出任务请求数据,至执行机集群中的物理控制机的控制机服务中。控制机服务响应于任务请求数据,将与任务请求数据对应的目标任务分发给指定物理执行机上的代理服务,当代理服务收到任务请求数据的时候,创建并启动与代理服务对应的目标容器。当目标容器运行时,目标容器中的目标任务也运行,响应于目标容器中的目标任务运行,可以将目标容器的身份信息和目标任务的身份信息对应的保存到数据库中。当代理服务被重启时,可以基于与代理服务对应的目标容器,从数据库中确定包含所述目标容器的任务信息,从而可以从任务信息中确定目标任务的运行状态。
45.如果通过物理控制机上的控制机服务将目标任务分发给指定物理执行机上的代理服务,则当代理服务收到任务请求数据时,需要创建并启动目标容器,容器的信息保存在内存中,根据内存中的容器信息获取容器的状态,并上报给控制机服务,在这种情况下,代理服务的重启,会导致上述两个线程都被终止,从而导致目标任务运行失败,控制机服务就
需要将当前的目标任务重新分发,从而会导致同一个目标任务会被重试执行,造成资源空间的浪费和目标任务延迟执行,而在本技术实施例中,将目标任务和目标容器二者之间的对应关系保存到数据库中,代理服务可以从数据库中获取目标任务的运行状态并更新,将目标任务的运行状态存储于数据库中,无需代理服务再向控制服务上报状态,从而避免了目标任务的运行状态丢失的技术问题,且当代理服务重启后,目标任务不会被重复执行,避免了资源浪费和目标任务处理延迟的技术问题。
46.举例而言,终端可以触发任务请求数据,将任务请求数据提交到控制机服务,控制机服务响应于获取到来自终端的任务请求数据,通过路由策略,控制代理服务将与任务请求数据对应的目标任务分发到执行容器(目标容器)中,并运行目标任务。响应于目标任务运行,可以将目标任务的任务信息存储于数据库中,在目标任务运行的过程中,可以不断更新数据库中目标任务的运行状态。当代理服务被重启,可以从数据库中确定与代理服务对应的目标容器的任务信息,从任务信息中可以确定目标任务的运行状态,可以将目标任务的运行状态更新到代理服务中。
47.可选地,终端触发任务请求数据可以有多种方式,比如,可以为通过选择终端显示界面中的控件以触发任务请求数据,或者可以为通过选择指令选择对应的任务请求,以触发任务请求数据,此处仅为举例,不对终端触发任务请求数据的方式做具体限制。
48.举例而言,当确定目标容器的身份信息时,可以通过身份信息之间的关联关系,确定与目标容器的身份信息对应的任务的身份信息,从而确定目标任务;或者当确定目标任务的身份信息时,可以通过身份信息之间的关联关系,确定与目标任务的身份信息对应的容器的身份信息,从而可以确定目标容器。
49.在本技术中,响应于获取到来自终端的任务请求数据,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且控制代理服务启动目标容器中的目标任务运行;响应于目标容器中的目标任务运行,将目标任务的任务信息存储于数据库中,其中,任务信息用于表征目标容器和在目标容器中运行的任务二者之间的对应关系;响应于重启代理服务,从数据库中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态。也即,在本技术中,构建目标容器与目标任务之间的对应关系,当目标容器运行时,可以将目标任务的任务信息存储在数据库中,从而将代理服务和目标容器进行解耦,即使代理服务停止,目标容器中的目标任务的进程也可以继续运行,当代理服务重新启动时,可以从数据库中获取目标任务的运行状态,从而解决了代理服务的发布和启动会导致线程停止的技术问题,实现了代理服务的发布和启动不会导致线程停止的技术效果。
50.下面结合上述各步骤对本技术实施例进行详细说明。
51.作为一种可选的实施例,步骤s102,响应于获取到来自终端的任务请求数据,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且控制代理服务启动目标容器中的目标任务运行,包括:响应于获取到来自终端的任务请求数据,控制代理服务基于容器创建接口,创建目标容器;响应于目标容器创建成功,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且通过容器启动接口,控制代理服务启动目标容器中的目标任务运行。
52.在该实施例中,当获取到来自终端的任务请求数据后,可以响应于获取到来自终端的任务请求数据,控制代理服务基于容器创建接口,创建目标容器,响应于目标容器创建
成功,可以控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且通过容器启动接口,可以控制代理服务器启动目标容器中的目标任务运行。其中,容器创建接口可以为开源的应用容器引擎的接口,又可以称为docker容器接口(docker api)。
53.可选地,响应于获取到来自终端的任务请求数据,可以控制代理服务调用容器创建接口,基于容器创建接口,创建目标容器,响应于目标容器创建成功,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,通过容器启动接口,启动目标容器,以达到控制代理服务启动目标容器中的目标任务运行的目的。
54.举例而言,响应于获取到来自终端的任务请求数据,可以控制代理服务调用创建容器接口(创建docker容器接口),docker服务会根据创建容器接口入参镜像名和对应docker容器入参拉取对应的docker容器,从而达到创建目标容器的目的。响应于目标容器创建成功,可以控制代理服务器通过容器启动接口启动目标容器,以启动目标容器中的目标任务运行。
55.作为一种可选的实施例,通过容器启动接口,控制代理服务启动目标容器中的目标任务运行,包括:确定与任务请求中的任务参数对应的容器启动接口,且通过容器启动接口,控制代理服务启动目标容器中的目标任务启动。
56.在该实施例中,可以确定与任务请求中的任务参数,调取与任务参数匹配的容器启动接口,可以通过容器启动接口,控制代理服务启动目标容器中的目标任务启动。
57.可选地,代理服务可以根据提前构建好的适合运行调度任务的docker镜像创建容器,确定与任务请求中的任务参数对应的容器启动接口,且通过容器启动接口,控制代理服务启动目标容器中的目标任务启动,并且更新任务到数据库中
58.作为一种可选的实施例,步骤s104,响应于目标容器中的目标任务运行,将目标任务的任务信息存储于数据库中,包括:响应于目标容器中的目标任务运行,将任务信息存储于数据库中,其中,任务信息包括以下至少之一:目标任务的身份信息、目标容器的身份信息、目标任务的运行状态和物理机的身份信息,物理机用于运行目标容器。
59.在该实施例中,当目标容器中的目标任务运行,响应于目标容器中的目标任务运行,可以将任务信息存储在数据库中,任务信息可以包括以下至少之一:目标任务的身份信息、目标容器的身份信息、目标任务的运行状态和物理机的身份信息。其中,目标任务的身份信息可以用于确定目标任务,可以简称为任务身份信息(调度任务id)。目标容器的身份信息可以用于确定目标容器,可以简称为容器身份信息(容器id)。目标任务的运行状态可以用于确定任务的运行情况,可以用调度任务实例状态进行表示。物理机身份信息可以用于确定与目标容器或目标任务匹配的物理机,可以为物理机互联网协议地址(internet protocol address,简称为ip)。物理机可以为调度任务集群中的物理执行机,可以用于运行目标容器。
60.可选地,可以以表格存储的形式,使用mysql数据库存储任务信息。任务信息可以包含的任务属性,比如,可以包括调度任务id,容器id,物理机ip,调度任务状态等。需要说明的是,此处不对数据库中存储的任务信息的形式和内容做具体限制,可以根据实际情况,对数据库中存储的任务信息进行增加或者减少。
61.可选地,物理执行机运行目标容器。可以提前构建适合调度任务(目标任务)运行的docker镜像,根据物理控制机给定的调度任务参数启动目标容器(可以为docker容器),
每个目标容器都有唯一的身份信息(identity document,简称为id),身份信息又可以称为container_id。运行中的目标容器在物理执行机上是一个独立的进程,目标容器中的目标任务运行结束,目标容器会退出,执行目标任务的进程会被回收。
62.作为一种可选的实施例,响应于代理服务启动,创建定时调度线程池,且控制调度线程池获取目标容器中的目标任务的运行状态,并更新至数据库中。
63.在该实施例中,当代理服务启动时,可以创建一个定时调度线程池,从而可以控制调度线程池周期性的获取当前机器上正在运行的目标容器中目标任务的运行状态,并更新至数据库中。
64.举例而言,响应于获取到来自终端的任务请求数据,控制机服务可以将任务请求数据对应的目标任务提交到代理服务中,代理服务可以根据目标任务的参数创建并启动目标容器,每个目标任务都可以创建一个目标容器去运行,从而使得目标容器在代理服务上只是一个进程,每个目标容器都有对应的唯一的身份信息,从而当代理服务器启动时,可以在代理服务所在的物理执行机上,创建定时调度线程池,基于定时调度线程池,通过容器接口,周期性的获取当前机器上正在运行的目标容器中目标任务的运行状态,并更新至数据库中。
65.在该实施例中,目标容器(也即运行容器)所依赖的镜像是提前构建适合离线任务运行的镜像。代理服务启动时会创建一个定时调度线程池,周期性的获取当前机器(也即物理执行机)上正在运行的目标任务的运行状态并更新到数据库中,当更新完目标任务的最终状态,可以将目标容器删除,并释放磁盘资源,以缓解存储压力。
66.在本技术实施例中,目标容器以进程的方式运行在物理执行机中,代理服务也是一个运行在物理执行机中的进程,所以代理服务和目标容器互不影响,代理服务可以随时发布重启,不会影响目标容器的运行,可以根据目标容器的身份信息,确定目标容器中目标任务的运行状态,从而解决了代理服务发布和启动都会导致线程停止的技术问题。
67.作为一种可选的实施例,响应于重启代理服务,从数据库中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,包括:响应于重启代理服务,定时调度线程池轮询数据库,得到轮询结果;从轮询结果中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,并将运行状态更新至数据库中。
68.在该实施例中,当代理服务重启时,只要查询数据库就可以确定目标任务的运行状态。响应于重启代理服务,定时调度线程池会轮询数据库,确定代理服务中的目标容器中运行的目标任务,得到与目标任务有关的轮询结果,可以从轮询结果中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,并将运行状态更新至数据库中。
69.可选地,由于容器id、任务id被保存在数据库中,所以当代理服务重启的时候,定时调度线程池就会轮询数据库,找到当前目标容器运行的目标任务,根据目标任务的身份信息获取目标容器的身份信息,从而可以通过docker服务查询到目标容器中目标任务的运行状态,并且将该状态更新到数据库中,控制机服务只需要查询数据库便可以知道目标任务的运行状态,无需代理服务将目标任务的运行状态上报,因此,控制机服务无需关心代理服务的重启操作,代理服务重启时,控制机服务无需重新分发任务,当代理服务重启时,可以响应于重启代理服务,定时调度线程池轮询数据库,得到轮询结果;从轮询结果中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,并将运行状态更新至
数据库中。
70.在本技术实施例中,通过将代理服务和目标任务(又可以称为调度任务)的运行进行解耦,将原本的代理服务作为控制机器和目标容器交互的代理,借助代理服务,将目标任务运行托管到目标容器中,目标容器是物理执行机的一个进程,代理服务发布重启和目标容器完全解耦,代理服务可以随意发布重启,并不影响目标容器的运行,并可以随时获取目标容器的状态持久化到数据库,完全不会造成目标任务的运行状态的丢失,且可以及时删除终态的目标容器,不仅有利于资源利用还能节省任务运行的耗时,从而解决了代理服务发布和启动都会导致线程停止的技术问题,实现了代理服务发布和启动无法导致线程停止的技术效果。
71.作为一种可选的实施例,响应于获取到终端的查询任务请求数据,基于查询任务请求数据中查询任务的身份信息,确定数据库中查询任务的运行状态,并将运行状态显示在终端的显示界面中。
72.在该实施例中,当获取到终端的查询任务请求数据时,响应于获取到的终端的查询任务请求数据,基于查询任务请求数据中查询任务的身份信息,确定数据库中查询任务的运行状态,可以将确定的运行状态显示在终端的显示界面中。其中,查询任务请求数据可以用于请求获取查询任务的运行状态,又可以称为查询任务请求。
73.可选地,终端可以通过触发查询任务请求。响应于获取到终端的查询任务请求数据,控制机服务可以根据想要查询的查询任务的身份信息到数据库中确定查询任务的状态。
74.在该实施例中,通过代理服务和目标容器来实现调度任务的无状态化,即只要通过查询任务请求就可以获取查询任务的运行状况,从而大袋无需感知执行机的状态就可以查询到任务的运行状况的目的。
75.作为一种可选的实施例,响应于目标任务执行结束,删除目标容器。
76.在该实施例中,当目标任务执行结束时,可以删除目标容器,从而及时释放资源的目的。
77.可选地,一个物理机器上可以部署一个代理服务,代理服务的功能可以包含:创建容器,停止容器,删除容器,获取容器状态等。创建容器时,可以返回一个容器的身份信息,一个任务的身份信息会关联唯一一个容器的身份信息,代理服务可以根据物理执行机上运行的目标容器,自动周期性更新目标任务对应目标容器的状态,直到任务运行到终态。当目标任务执行到终态后,可以确定目标任务执行结束,响应于目标任务执行结束,可以删除目标容器,从而达到及时释放资源的目的。
78.举例而言,通过获取docker容器的接口可以获取docker容器状态;还会通过相应的接口来停止docker容器,并删除docker容器,或者可以通过容器接口获取docker容器的运行健康指标等待容器的调用。
79.在本技术实施例中,构建目标容器与目标任务之间的对应关系,当目标容器运行时,可以将目标任务的任务信息存储在数据库中,从而将代理服务和目标容器进行解耦,即使代理服务停止,目标容器中的目标任务的进程也可以继续运行,当代理服务重新启动时,可以从数据库中获取目标任务的运行状态,从而解决了代理服务的发布和启动会导致线程停止的技术问题,实现了代理服务的发布和启动不会导致线程停止的技术效果。
80.实施例二
81.下面结合另一种可选的具体实施方式进行详细说明。
82.在大数据平台中,随着业务的不断发展,任务调度在各类场景中发挥着重要的作用。在日常的数据处理中,业务开发人员可以在系统中运行开源集群运算框架(比如,spark、hive)等的任务。任务调度系统不仅需要和上层任务对接,还需要和底层基础组件对接。每天需要运行成千上万的任务,每个任务可能涉及到数以百亿的数据。
83.图2是根据相关技术提供的一种任务调度方法的示意图,如图2所示,通常情况下,调度任务的执行方案是通过调度任务集群200中的物理控制机201中的控制机服务通过任务路由分发任务到物理执行机202中的代理服务(proxy),通过代理服务203启动线程运行任务的容器204,或者可以分发任务到物理执行机205中的代理服务(proxy),通过代理服务206启动线程运行任务的容器207;或者分发任务到物理执行机208中的代理服务(proxy),通过代理服务209启动线程运行任务的容器2010。在该方法中,一个线程执行任务,将任务提交到大数据平台;一个线程监听任务,通过上报状态和心跳,不断地获取任务的执行状态,两个线程协作确保任务的有效运行,但是执行任务的线程都是由代理服务创建的,代理服务发布和启动都会导致运行线程的容器(比如,docker容器)停止,从而会存在导致任务运行的失败的技术问题。
84.在相关技术中,提出了一种利用docker容器运行调度任务,图3是根据相关技术提供的一种运行调度任务的流程图,如图3所示,利用docker容器运行调度任务可以包括以下步骤。
85.步骤s301,构建适合离线任务运行的镜像。
86.在该实施例中,构建适合离线任务运行的镜像,当获取到离线任务时,可以分配对应的镜像。
87.步骤s302,代理服务接受控制机服务分发的离线任务。
88.在该实施例中,物理控制机上的控制机服务需要将任务分发给指定物理执行机上的代理服务,代理服务可以接受控制机服务分发的离线任务,当代理服务收到任务请求的时候,可以创建两个线程。
89.步骤s303,代理服务根据离线任务类型,匹配对应的镜像。
90.在该实施例中,代理服务可以根据离线任务类型,匹配对应的镜像,以运行任务。
91.步骤s304,代理服务开启任务执行线程,创建、启动容器,开启任务状态监听线程。
92.在该实施例中,通过代理服务以线程的方式创建容器,可以通过开启任务状态监听线程,以监听线程获取容器的状态。
93.步骤s305,将任务状态上报到控制服务器。
94.在该实施例中,可以将任务状态上报到控制服务器,上报完最终态,任务执行线程和任务状态监控线程并自动销毁。
95.可选地,线程可以根据内存中的容器的身份信息获取容器的状态,并上报给控制机服务。但是当代理服务重启的时候,两个线程都会被终止,从而会造成任务失败,控制机服务就会将当前任务重新分发,因此,在该方法中,如果代理服务发布和重启,会造成任务失败,容器信息没有存储造成任务无法继续更新状态,导致状态丢失,任务会被重新分发执行,同一个任务的重试执行,会导致存在资源的浪费和任务延迟执行等问题。
96.在上述方法中,离线调度任务执行时间比较长,生产环境常见运行耗时在数个小时,在任务执行的过程中,无法避免的会对代理服务维护升级,当服务重启时,运行在代理服务的任务也会随之失败,由于任务失败之前运行占用的资源,不仅会造成了资源浪费,还导致了任务的延迟。同时,如果因为代理服务的重启造成代理服务任务失败,特别是在任务即将完成的时候服务重启而造成任务失败,需要重新运行,则会导致本次任务耗时翻倍,从而存在高耗时的技术问题。
97.为解决上述问题,本技术实施例提出了一种基于docker容器的调度任务无状态化方法,通过将代理服务和调度任务的运行进行解耦,图4是根据本技术实施例提供的一种任务调度的示意图,如图4所示,将原本的代理服务作为控制机器和docker容器交互的代理,调度任务集群400中的物理控制机401中的控制机服务可以分发任务至物理执行机407的代理服务402中,借助代理服务402,可以将任务运行托管到目标容器403(docker容器)中;可以分发任务至物理执行机408,借助代理服务404,可以将任务运行托管到目标容器405中;可以分发任务至物理执行机409,借助代理服务406,可以将任务运行托管到目标容器4010中,从而使得docker容器和代理服务都作为物理执行机的一个进程,达到代理服务发布重启和docker容器完全解耦的目的。
98.可选地,如图4所示,一个执行机集群可以包含若干物理机,其中一个是物理控制机,其余为物理执行机。物理控制机可以包含一个控制机服务,负责分发路由调度任务,可以将调度任务路由到任意物理执行机。代理服务执行控制机分发下来的任务,一个物理机可以运行若干docker容器,一个容器对应一个任务,任务的生命周期就是容器的生命周期。
99.在该实施例中,由于docker容器是以进程的方式运行在执行机器中,代理服务也是一个进程,所以代理服务和docker容器互不影响,代理服务可以随时发布重启,不会影响机器中容器的运行。同时,可以随时获取容器的状态持久化到数据库,完全不会造成任务状态的丢失,及时删除终态容器,不仅有利于资源利用还能节省任务运行的耗时。
100.图5是根据本技术实施例提供的一种任务调度无状态化方法的流程图,如图5所示,任务调度无状态化方法可以包括以下步骤。
101.步骤s501,构建适合离线任务运行的镜像。
102.在该实施例中,可以预先构建好适合调度任务运行的docker镜像,根据物理控制机给定的调度任务参数启动docker容器,每个容器都有唯一id,称之为container_id。运行中的docker容器在物理机上是一个独立的进程,容器中的任务运行结束,容器会退出,进程会回收。
103.图6是根据本技术实施例提供的一种创建目标容器的示意图,如图6所示,代理服务601可以调用创建容器接口(比如,docker容器接口),docker服务可以根据接口入参镜像名和对应docker容器入参拉取对应的docker镜像,以创建docker容器。
104.可选地,通过启动docker容器的接口来启动容器;通过获取docker容器状态的接口获取docker容器状态;还会通过相应的接口来停止docker容器,删除docker容器,获取docker容器的运行健康指标等待。
105.步骤s502,代理服务接受控制机服务分发的离线任务,并根据离线任务类型,匹配对应的镜像并创建启动容器。
106.在该实施例中,终端可以触发提交任务请求,将任务提交到控制机服务,控制机服
务接受控制机服务分发的离线任务,且可以通过路由策略,利用代理服务将任务分发到执行机容器上,代理服务会根据提前构建好的适合运行调度任务的docker镜像创建容器、运行任务,并且更新任务到数据库中。
107.图7是根据本技术实施例提供的一种终端触发请求的示意图,如图7所示,终端701发出任务请求,物理控制机上的控制机服务702将任务分发给指定物理执行机上的代理服务703,当代理服务收到任务请求的时候,创建并启动容器,并将容器id、任务id保存到数据库中。
108.步骤s503,代理服务定时轮询运行在当前服务的任务。
109.在该实施例中,代理服务启动的时候,可以创建一个定时调度线程池,周期性的获取物理执行机上正在运行的目标容器的状态并更新到数据库中。
110.可选地,响应于获取到来自终端的任务请求数据,控制机服务可以将任务请求数据对应的目标任务提交到代理服务中,代理服务可以根据目标任务的参数创建并启动目标容器,每个目标任务都可以创建一个目标容器去运行,从而使得目标容器在代理服务上只是一个进程,每个目标容器都有对应的唯一的身份信息,从而当代理服务器启动时,可以在代理服务所在的物理执行机上,创建定时调度线程池,基于定时调度线程池,通过容器接口,周期性的获取当前机器上正在运行的目标容器中目标任务的运行状态,并更新至数据库中。
111.在该实施例中,终端可以通过触发查询任务请求,控制机服务根据目标任务的身份信息到数据库中查询目标任务的运行状态。
112.步骤s504,根据任务对应的容器的身份信息获取容器的状态并持久化到数据库。
113.在该实施例中,可以根据任务(可以为目标任务)的身份信息对应的容器的身份信息获取目标容器的运行状态,并将运行状态持久化到数据库中。
114.由于容器id、任务id被保存在数据库中,所以当代理服务重启的时候,定时调度线程池就会轮询数据库,找到当前目标容器运行的目标任务,根据目标任务的身份信息获取目标容器的身份信息,从而可以通过docker服务查询到目标容器中目标任务的运行状态,并且将该状态更新到数据库中,控制机服务只需要查询数据库便可以知道目标任务的运行状态,无需代理服务将目标任务的运行状态上报,因此,控制机服务无需关心代理服务的重启操作,代理服务重启时,控制机服务无需重新分发任务,当代理服务重启时,可以响应于重启代理服务,定时调度线程池轮询数据库,得到轮询结果;从轮询结果中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,并将运行状态更新至数据库中。
115.可选地,一个物理机器上可以部署一个代理服务,代理服务的功能可以包含:创建容器,停止容器,删除容器,获取容器状态等。创建容器时,可以返回一个容器的身份信息,一个任务的身份信息会关联唯一一个容器的身份信息,代理服务可以根据物理执行机上运行的目标容器,自动周期性更新目标任务对应目标容器的状态,直到任务运行到终态。当目标任务执行到终态后,可以确定目标任务执行结束,响应于目标任务执行结束,可以删除目标容器,从而达到及时释放资源的目的。
116.在该实施例中,可以用表格的形式,在数据库中存储任务信息,表1是一种数据库存储任务信息表,如表1所示,任务信息可以包含的属性有:调度任务id、容器id、物理机ip、调度任务状态等信息,可以将任务信息中的属性对应的属性名和属性类型以表格的形式存
储在数据库中。
117.表1一种数据库存储任务信息表
118.属性描述属性名属性类型备注调度任务idtask_idstring 调度任务参数task_commandstring 容器idcontainer_idstring 物理机iphost_ipstring 调度任务实例状态task_statusstring 其他属性...... 119.举例而言,终端可以触发任务请求数据,将任务请求数据提交到控制机服务,控制机服务响应于获取到来自终端的任务请求数据,通过路由策略,控制代理服务将与任务请求数据对应的目标任务分发到执行容器(目标容器)中,并运行目标任务。响应于目标任务运行,可以将目标任务的任务信息存储于数据库中,在目标任务运行的过程中,可以不断更新数据库中目标任务的运行状态。当代理服务被重启,可以从数据库中确定与代理服务对应的目标容器的任务信息,从任务信息中可以确定目标任务的运行状态,可以将目标任务的运行状态更新到代理服务中。
120.通过使用代理服务和容器来实现调度任务无状态化,即,可以直接通过查询指令获取数据库中的数据以确定任务的运行状态,达到无需感知物理执行机的状态就可以查询到任务的运行状况的目的。且可以将任务和容器的关系保存到数据库中,代理服务更新任务的状态,控制服务查询任务的状态,无需代理服务再向控制服务上报状态,因此,完全不会造成任务状态丢失。任务不会被重复执行,不会浪费资源,以解决任务延迟完成的问题。
121.在该实施例中,通过控制机服务将任务路由到代理服务,代理服务通过创建和启动容器将任务提交到大数据平台。运行容器所依赖的镜像是提前构建适合离线任务运行的镜像。代理服务启动时,根据任务的参数可以创建并启动容器,每一个任务都可以创建一个容器,同时可以创建一个定时调度线程池,周期性的获取当前机器上正在运行的容器状态并更新到数据库中,更新完任务最终状态后,会将容器进行删除处理,从而达到释放磁盘资源,缓解存储压力的目的。
122.实施例三
123.本技术实施例还提供了一种任务状态的确定装置,需要说明的是,本技术实施例的任务状态的确定装置可以用于执行图1中本技术实施例所提供的用于任务状态的确定方法。以下对本技术实施例提供的任务状态的确定装置进行介绍。
124.图8是根据本技术实施例的一种任务状态的确定装置的示意图。如图8所示,该装置可以包括:控制单元801、存储单元802和确定单元803。
125.控制单元801,用于响应于获取到来自终端的任务请求数据,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且控制代理服务启动目标容器中的目标任务运行。
126.存储单元802,用于响应于目标容器中的目标任务运行,将目标任务的任务信息存储于数据库中,其中,任务信息用于表征目标容器和在目标容器中运行的任务二者之间的对应关系。
127.确定单元803,用于响应于重启代理服务,从数据库中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态。
128.可选地,控制单元801还包括:第一处理模块,用于响应于获取到来自终端的任务请求数据,控制代理服务基于容器创建接口,创建目标容器;响应于目标容器创建成功,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且通过容器启动接口,控制代理服务启动目标容器中的目标任务运行。
129.可选地,第一处理模块还包括:控制子模块,用于确定与任务请求中的任务参数对应的容器启动接口,且通过容器启动接口,控制代理服务启动目标容器中的目标任务启动。
130.可选地,存储单元802还包括:存储模块,用于响应于目标容器中的目标任务运行,将任务信息存储于数据库中,其中,任务信息包括以下至少之一:目标任务的身份信息、目标容器的身份信息、目标任务的运行状态和物理机的身份信息,物理机用于运行目标容器。
131.可选地,该装置还包括:第一处理单元,用于响应于代理服务启动,创建定时调度线程池,且控制调度线程池获取目标容器中的目标任务的运行状态,并更新至数据库中。
132.可选地,确定单元803还包括:第二处理模块,用于响应于重启代理服务,定时调度线程池轮询数据库,得到轮询结果;从轮询结果中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,并将运行状态更新至数据库中。
133.可选地,所述装置还包括:第二处理单元,用于响应于获取到终端的查询任务请求数据,基于查询任务请求数据中查询任务的身份信息,确定数据库中查询任务的运行状态,并将运行状态显示在终端的显示界面中。
134.可选地,该装置还包括删除单元,用于响应于目标任务执行结束,删除目标容器。
135.本技术实施例提供的任务状态的确定装置,通过控制单元,响应于获取到来自终端的任务请求数据,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且控制代理服务启动目标容器中的目标任务运行;通过存储单元,响应于目标容器中的目标任务运行,将目标任务的任务信息存储于数据库中,其中,任务信息用于表征目标容器和在目标容器中运行的任务二者之间的对应关系;通过确定单元,响应于重启代理服务,从数据库中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态,从而解决了代理服务的发布和启动会导致线程停止的技术问题,实现了代理服务的发布和启动不会导致线程停止的技术效果。
136.上述任务状态的确定装置还可以包括处理器和存储器,上述单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
137.上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来控制相同设备类型的待停机设备进行优雅停机。
138.上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
139.本技术实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述的任务状态的确定方法。
140.本技术实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的任务状态的确定方法。
141.根据本技术实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的任务状态的确定方法。
142.图9是根据本技术实施例的一种用于任务状态的确定方法的电子设备(或移动设备)的硬件结构框图。如图9所示,电子设备可以包括一个或多个(图中采用902a、902b,
……
,902n来示出)处理器902(处理器902可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器904。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。
143.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
144.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
145.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
146.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
147.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
148.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
149.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
150.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
151.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法
或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
152.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
153.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
154.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。

技术特征:
1.一种任务状态的确定方法,其特征在于,包括:响应于获取到来自终端的任务请求数据,控制代理服务将所述任务请求数据请求的目标任务下发至目标容器中,且控制所述代理服务启动所述目标容器中的所述目标任务运行;响应于所述目标容器中的所述目标任务运行,将所述目标任务的任务信息存储于数据库中,其中,所述任务信息用于表征所述目标容器和在所述目标容器中运行的所述目标任务二者之间的对应关系;响应于重启所述代理服务,从所述数据库中确定包含所述目标容器的所述任务信息,且从所述任务信息中确定所述目标任务的运行状态。2.根据权利要求1所述的方法,其特征在于,响应于获取到来自所述终端的所述任务请求数据,控制所述代理服务将所述任务请求数据请求的所述目标任务下发至所述目标容器中,且控制所述代理服务启动所述目标容器中的所述目标任务运行,包括:响应于获取到来自所述终端的所述任务请求数据,控制所述代理服务基于容器创建接口,创建所述目标容器;响应于所述目标容器创建成功,控制所述代理服务将所述任务请求数据请求的所述目标任务下发至所述目标容器中,且通过容器启动接口,控制所述代理服务启动所述目标容器中的所述目标任务运行。3.根据权利要求2所述的方法,其特征在于,通过所述容器启动接口,控制所述代理服务启动所述目标容器中的所述目标任务运行,包括:确定与所述任务请求中的任务参数对应的所述容器启动接口,且通过所述容器启动接口,控制所述代理服务启动所述目标容器中的所述目标任务启动。4.根据权利要求1所述的方法,其特征在于,响应于所述目标容器中的所述目标任务运行,将所述目标任务的所述任务信息存储于数据库中,包括:响应于所述目标容器中的所述目标任务运行,将所述任务信息存储于数据库中,其中,所述任务信息包括以下至少之一:所述目标任务的身份信息、所述目标容器的身份信息、所述目标任务的运行状态和物理机的身份信息,所述物理机用于运行所述目标容器。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述代理服务启动,创建定时调度线程池,且控制所述调度线程池获取所述目标容器中的所述目标任务的运行状态,并更新至所述数据库中。6.根据权利要求1所述的方法,其特征在于,响应于重启所述代理服务,从所述数据库中确定包含所述目标容器的所述任务信息,且从所述任务信息中确定所述目标任务的运行状态,包括:响应于重启所述代理服务,定时调度线程池轮询所述数据库,得到轮询结果;从所述轮询结果中确定包含所述目标容器的所述任务信息,且从所述任务信息中确定所述目标任务的运行状态,并将所述运行状态更新至所述数据库中。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于获取到所述终端的查询任务请求数据,基于所述查询任务请求数据中查询任务的身份信息,确定所述数据库中所述查询任务的运行状态,并将所述运行状态显示在所述终端的显示界面中。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:响应于所述目标任务执行结束,删除所述目标容器。9.一种任务状态的确定装置,其特征在于,包括:控制单元,用于响应于获取到来自终端的任务请求数据,控制代理服务将所述任务请求数据请求的目标任务下发至目标容器中,且控制所述代理服务启动所述目标容器中的所述目标任务运行;存储单元,用于响应于所述目标容器中的所述目标任务运行,将所述目标任务的任务信息存储于数据库中,其中,所述任务信息用于表征所述目标容器和在所述目标容器中运行的所述任务二者之间的对应关系;确定单元,用于响应于重启所述代理服务,从所述数据库中确定包含所述目标容器的所述任务信息,且从所述任务信息中确定所述目标任务的运行状态。10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的方法。

技术总结
本申请公开了一种任务状态的确定方法、装置和处理器,涉及数据处理领域,该方法包括:响应于获取到来自终端的任务请求数据,控制代理服务将任务请求数据请求的目标任务下发至目标容器中,且控制代理服务启动目标容器中的目标任务运行;响应于目标容器中的目标任务运行,将目标任务的任务信息存储于数据库中,其中,任务信息用于表征目标容器和在目标容器中运行的目标任务二者之间的对应关系;响应于重启代理服务,从数据库中确定包含目标容器的任务信息,且从任务信息中确定目标任务的运行状态。通过本申请,解决了代理服务的发布或启动导致任务异常的技术问题。导致任务异常的技术问题。导致任务异常的技术问题。


技术研发人员:刘微 郭相林 李硕蕾 魏博言
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.05.10
技术公布日:2023/8/13
版权声明

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

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

分享:

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

相关推荐