1.本技术涉及网络技术领域,特别是涉及一种任务处理方法、系统、装置及可读介质。
背景技术:2.目前,随着网络技术的不断发展,网络中的目标对象越来越多。实际应用场景中,有时需要对目标对象进行目标处理,以对目标对象进行评估。
3.在先技术中,往往是对目标对象所处目标对象管理服务端进行改造,在内部实现对目标对象进行目标处理。但是,这种方式中,实现成本较高。
技术实现要素:4.鉴于上述问题,本技术实施例提供一种任务处理方法、系统、装置及可读介质,以解决实现成本较高的问题。
5.为了解决上述问题,本技术实施例公开了一种任务处理方法,包括:
6.至少一个第一服务端向队列服务端发送任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;
7.所述队列服务端将所述任务处理请求转换为待处理队列消息;
8.虚拟容器服务端从所述队列服务端获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端;
9.所述虚拟容器服务端基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。
10.可选的,所述虚拟容器服务端基于运行的目标进程在所述虚拟容器中执行所述目标处理;所述方法还包括:
11.所述中心调度服务端检测所述目标进程处于运行中且未进行所述目标处理的运行时长;
12.所述中心调度服务端在所述运行时长达到预设运行时长阈值的情况下,向所述虚拟容器发送重启指令。
13.可选的,所述方法还包括:
14.所述虚拟容器服务端将处理结果通过所述队列服务端发送给所述目标对象管理服务端或所述中心调度服务端。
15.可选的,所述中心调度服务端从待处理的配置文件中选择n个配置文件,包括:
16.所述中心调度服务端在检测到所述m大于预设数量阈值的情况下,从待处理的配置文件中选择n个配置文件;
17.所述方法还包括:
18.所述中心调度服务端在所述m不大于所述预设数量阈值或者发送的所述n个任务处理请求未被成功响应的情况下,等待预设时长之后再次执行从待处理的配置文件中选择n个配置文件的操作。
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.图1是本技术一实施例提供的一种实现架构图;
51.图2是本技术一实施例提供的一种应用场景示意图;
52.图3是本技术一实施例提供的另一种应用场景示意图;
53.图4是本技术一实施例提供的又一种应用场景示意图;
54.图5是本技术一实施例提供的一种任务处理方法的步骤流程图;
55.图6是本技术一实施例提供的一种任务处理的层级结构的示意图;
56.图7是本技术一实施例提供的另一种任务处理方法的步骤流程图;
57.图8是本技术一实施例提供的又一种任务处理方法的步骤流程图;
58.图9是本技术一实施例提供的又一种任务处理方法的步骤流程图;
59.图10是本技术一实施例提供的一种任务处理系统的结构图;
60.图11是本技术一实施例提供的一种任务处理装置的结构图;
61.图12是本技术一实施例提供的另一种任务处理装置的结构图;
62.图13是本技术一实施例提供的又一种任务处理装置的结构图;
63.图14是本技术另一实施例提供的一种装置的结构示意图。
具体实施方式
64.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。
65.为使本领域技术人员更好地理解本技术,以下对本技术涉及的概念进行说明:
66.目标对象:需要进行目标处理的主体。其中,目标处理的处理类型可以根据实际需求设定,例如,目标处理可以为扫描、信息提取等操作。对象可以为代码、订单、文本等等。
67.目标对象管理服务端:目标对象管理服务端可以包括预先创建的用于对目标对象进行管理的对象管理平台。例如,可以基于目标对象管理服务端对目标对象进行生成、部署、发布、评审、测试等操作。目标对象管理服务端可以为第一服务端,也就是说,第一服务端可以利用队列服务端以及虚拟容器服务端,对处于内部的目标对象进行目标处理。目标对象管理服务端也可以包括外部对象库,也就是说,第一服务端可以利用队列服务端以及虚拟容器服务端,对外部对象库中的目标对象进行目标处理。其中,外部对象库可以是用于存储之前生成的对象的数据库。
68.第一服务端:在第一服务端为目标对象管理服务端的情况下,第一服务端可以理解为对象管理平台。在第一服务端为中心调度服务端的情况下,第一服务端可以理解为用于对对象进行目标处理的对象处理平台中的一部分。其中,该对象处理平台可以包括中心调度服务端、队列服务端以及虚拟容器集群。或者,虚拟容器集群也可与对象处理平台相互独立,虚拟容器集群可以视为对象处理平台外部的集群。对象处理平台可以对虚拟容器集
群中的虚拟容器服务端进行调度,以基于虚拟容器服务端对目标对象进行目标处理。其中,调度指的是分配虚拟容器服务端,以进行合理工作的操作。
69.队列服务端:指的是起中转作用的服务端。队列服务端中可以部署有原有的对象检查引擎,或者,也可以是针对本方案适应性开发的引擎。队列服务端中部署的引擎与目标对象管理服务端兼容。
70.任务处理请求:一个任务处理请求可以指示一个处理任务。处理任务指的是对目标对象进行目标处理。
71.虚拟容器:基于虚拟化技术实现,例如,基于应用容器引擎(docker)技术实现,又称为虚拟化容器。虚拟化技术具体指的是一种将计算机物理资源进行抽象、转换为虚拟的计算机资源提供给程序使用的技术。
72.虚拟容器服务端:一个虚拟容器可以构建一个虚拟容器服务端。示例性地,可以在虚拟容器中运行用于实现目标处理的处理进程,得到虚拟容器服务端。不同虚拟容器服务端中运行的处理进程一致,所处理的目标对象可以不同。一个虚拟容器服务端一次处理一个目标对象,多个虚拟容器服务端可以并行进行处理。其中,运行的处理进程一致可以理解为处理进程的处理方式和所能实现处理功能相同。
73.虚拟容器集群:可以包括至少一个物理服务端,一个物理服务端可以有至少一个虚拟容器服务端,比如,2个、5个等等。
74.配置文件:指的是任务处理请求所指示任务的配置文件,用于描述任务。示例性地,可以包括目标对象存储地址、处理规则、处理路径等配置信息。其中,目标对象存储地址可以表征目标对象所处的目标对象管理服务端,处理路径可以表征目标对象的存储路径。
75.第一格式:针对配置文件预先统一的文件格式。例如,第一格式可以为yaml("yet another markup language,仍是一种标记语言)文件格式,当然,也可以为其他格式。
76.处理结果:指的是目标处理的处理结果。示例性地,以对象为代码为例,处理结果可以包括代码评分、代码质量等级、代码成熟度、代码规范度和/或代码错误率等等。以对象为订单为例,处理结果可以包括订单的异常信息等等。
77.下面对本技术涉及的应用场景进行说明。
78.参照图1,示出了本技术的一种实现架构图,该实现架构中包括:第一服务端00、队列服务端01以及虚拟容器集群02。具体的,第一服务端00可以向队列服务端01发送任务处理请求。其中,该任务处理请求基于第一格式的配置文件生成,配置文件用于指示目标对象以及目标对象所处目标对象管理服务端。队列服务端01可以将任务处理请求转换为待处理队列消息。进一步地,虚拟容器集群02中的虚拟容器服务端可以从所述队列服务端01获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件,基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。其中,虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端,虚拟容器集群02中可以包括多个虚拟容器服务端。第一服务端00可以为一个或多个。本技术实施例提供的实现架构中,针对第一服务端00统一了配置文件的格式,并以队列服务端01作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
79.参照图2,示出了本技术的一种应用场景示意图。该应用场景中,以第一服务端为目标对象管理服务端为例。具体的,目标对象管理服务端11可以向队列服务端12发送任务处理请求。队列服务端12可以将所述任务处理请求转换为待处理队列消息。虚拟容器集群13中的虚拟容器服务端可以从所述队列服务端12获取所述待处理队列消息,基于所述待处理队列消息获取所述配置文件,基于所述配置文件,从所述目标对象管理服务端11获取所述目标对象并进行目标处理。本应用场景中,目标对象管理服务端11可以基于外接的对象处理平台对内部的目标对象执行目标处理,从而实现对目标对象管理服务端11中目标对象的自动化处理。其中,对象处理平台包括队列服务端12以及虚拟容器集群13。
80.参照图3,示出了本技术的另一种应用场景示意图。该应用场景中,以第一服务端为中心调度服务端为例。其中,外部对象库24为目标对象所处的目标对象管理服务端。具体的,中心调度服务端21可以向队列服务端22发送任务处理请求。队列服务端22可以将所述任务处理请求转换为待处理队列消息。虚拟容器集群23中的虚拟容器服务端可以从所述队列服务端22获取所述待处理队列消息,基于所述待处理队列消息获取所述配置文件,基于所述配置文件,从外部对象库24中获取所述目标对象并进行目标处理。本应用场景中,中心调度服务端21可以针对外部对象库24中的目标对象生成任务处理请求,使得对象处理平台可以对外部对象库24中的目标对象执行目标处理,从而实现对外部对象库24中目标对象的自动化处理。其中,该应用场景中对象处理平台包括中心调度服务端21、队列服务端22以及虚拟容器集群23。需要说明的是,实际应用场景中,中心调度服务端21与队列服务端22也可以合并为一个服务端,本技术实施例对此不做限制。
81.参照图4,示出了本技术的又一种应用场景示意图。该应用场景中,以对象为代码为例。第一服务端包括中心调度服务端31以及代码管理平台35。目标代码所处的目标代码管理服务端包括代码管理平台35以及外部代码库34。具体的,中心调度服务端31以及代码管理平台35均可以向队列服务端32发送任务处理请求。其中,中心调度服务端31发送的任务处理请求是基于用于指示处于外部代码库34的目标代码的配置文件生成的,代码管理平台35发送的任务处理请求是基于用于指示处于代码管理平台35的目标代码的配置文件生成的。队列服务端32可以将所述任务处理请求转换为待处理队列消息。虚拟容器集群33中的虚拟容器服务端,可以从所述队列服务端32获取所述待处理队列消息,基于所述待处理队列消息获取所述配置文件,基于所述配置文件,分别从外部对象库34以及代码管理平台35中获取所述目标代码并进行目标处理。本应用场景中,代码处理平台可以兼容代码管理平台35,可以在代码管理平台35基于外接的对象处理平台对内部的目标对象执行目标处理,从而实现对代码管理平台35中目标对象的自动化处理的同时,实现对外部对象库34中目标对象的自动化处理。
82.下面对本技术涉及的任务处理方法进行详细说明。
83.参照图5,示出了本技术的一种任务处理方法的步骤流程图,该方法可以包括:
84.步骤101、至少一个第一服务端向队列服务端发送任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端。
85.本技术实施例中,第一服务端可以主动向队列服务端提交任务处理请求,或者,也可以调用队列服务端中部署的引擎,由该引擎从第一服务端中读取任务处理请求。
86.步骤102、所述队列服务端将所述任务处理请求转换为待处理队列消息。
87.其中,一个任务处理请求可以指示一个处理任务,对应一个处理任务的配置文件。一个任务处理请求可以转换得到一个待处理队列消息。
88.步骤103、虚拟容器服务端从所述队列服务端获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。
89.本技术实施例中,虚拟容器服务端可以主动从队列服务端中拉取待处理队列消息,或者,也可以是接收队列服务端主动推送的待处理队列消息。
90.步骤104、所述虚拟容器服务端基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。
91.具体的,虚拟容器服务端可以调用预设脚本文件,按照第一格式读取配置文件中的信息。根据配置文件中的地址下载目标对象,将下载的目标对象以及配置文件中的处理规则提交给本地的执行器,由执行器对目标对象进行目标处理。其中,运行的执行器可以对应一个处理进程。需要说明的是,配置文件中还可以定义目标对象中所需处理的文件、所需过滤的文件。相应地,容器中运行的执行器可以仅对目标对象中所需处理的文件进行目标处理。需要说明的是,虚拟容器服务端在完成目标处理之后,可以重新获取待处理队列消息,继续对其他目标对象进行目标处理,从而提高处理效率。且各个虚拟容器服务端之间相互独立,从而避免执行的各个处理任务之间出现资源冲突。
92.综上所述,本技术实施例提供的任务处理方法,至少一个第一服务端向队列服务端发送任务处理请求;任务处理请求基于第一格式的配置文件生成;配置文件用于指示目标对象以及目标对象所处目标对象管理服务端。队列服务端将任务处理请求转换为待处理队列消息。虚拟容器服务端从队列服务端获取待处理队列消息,并基于待处理队列消息获取配置文件;虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。虚拟容器服务端基于配置文件,从目标对象管理服务端获取目标对象并进行目标处理。本技术实施例中,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
93.可选的,上述第一服务端向队列服务端发送任务处理请求的步骤,具体可以包括:
94.步骤1011、所述第一服务端获取所述第一格式的配置文件。
95.具体的,第一服务端可以接收输入的目标对象的相关信息。示例性地,目标对象的相关信息至少可以包括目标对象存储地址、处理路径、处理规则指示信息。将目标对象存储地址、处理路径以及处理规则指示信息所指示的处理规则文件,按照第一格式组合为配置文件,从而实现获取。或者,直接将相关信息作为预设生成脚本的输入,通过运行该预设生成脚本,得到第一格式的配置文件。
96.步骤1012、所述第一服务端将所述配置文件发送至云服务端进行存储,并基于所述配置文件在云服务端的目标存储地址生成所述任务处理请求。
97.本步骤中,云服务端中部署有文件存储服务。对于任一配置文件,第一服务端可以先将配置文件同步至文件存储服务,得到文件存储服务输出的文件远程地址,该文件远程
地址即为该配置文件在云服务端的目标存储地址。其中,不同配置文件对应不同的文件远程地址。进一步地,可以将目标存储地址作为任务处理请求的请求参数,按照指定的请求格式生成该配置文件对应的任务处理请求。
98.步骤1013、所述第一服务端向所述队列服务端发送所述任务处理请求。
99.本技术实施例中,将配置文件发送至云服务端进行存储,并基于配置文件在云服务端的目标存储地址生成任务处理请求,向队列服务端发送携带目标存储地址的任务处理请求。由于目标存储地址的数据量往往更小,因此,一定程度可以在确保任务处理请求能够指示配置文件的同时,降低传输任务处理请求的成本。且将配置文件发送至云服务端进行存储,一定程度上可以确保所存储数据的安全性。
100.可选的,上述队列服务端将所述任务处理请求转换为待处理队列消息的步骤,具体可以包括:
101.步骤1021、所述队列服务端接收所述任务处理请求并从所述任务处理请求中提取所述目标存储地址。
102.本技术实施例中,队列服务端可以解析任务处理请求,从解析后的任务处理请求中提取目标存储地址。
103.步骤1022、所述队列服务端基于所述目标存储地址生成待处理队列消息,并作为消息发布者向所述虚拟容器集群发布通知消息。
104.本步骤中,队列服务端可以直接将目标存储地址作为待处理队列消息。或者,将目标存储地址作为消息参数,按照预设消息格式生成消息,得到待处理队列消息。队列服务端可以将待处理队列消息加入消息队列中,消息队列中的一个消息对应一个配置文件。向虚拟容器集群中的虚拟容器服务端提供消息队列中的消息。具体的,可以向虚拟容器集群中的虚拟容器服务端推送通知消息,以向虚拟容器集群提供配置文件。其中,通知消息用于指示当前有可供消费的待处理队列消息。本技术实施例中,消息发布者可以指的是消息队列生产者(message queue producer,mq producer),mq producer可以向中间件(mq broker)投递消息,以将待处理队列消息加入消息队列中。本技术实施例中,将待处理队列消息文件加入消息队列中,消息队列中的一个消息对应一个配置文件。向虚拟容器集群中的虚拟容器服务端提供消息队列中的消息。这样,一定程度上可以基于消息投递机制便捷的向虚拟容器集群中的虚拟容器服务端提供配置文件。
105.需要说明的是,在一种实现方式,可以直接将配置文件作为待处理队列消息。具体的,可以基于文件远程地址作为参数调用队列服务端中的引擎,由引擎读取配置文件,并作为消息队列生产者(message queue producer,mq producer)向中间件(mq broker)投递消息,以将待处理配置文件加入消息队列中。
106.需要说明的是,在所集成的对象管理平台不同的情况下,可以通过配置约定调用参数,确保集成的其他对象管理平台能够处理配置文件即可。
107.相应地,上述虚拟容器服务端从所述队列服务端获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置的步骤,具体可以包括:
108.步骤1031、所述虚拟容器服务端在收到所述通知消息、且处于空闲状态的情况下,从所述队列服务端获取所述待处理队列消息,并从所述待处理队列消息中提取所述目标存储地址。
109.本步骤中,虚拟容器服务端可以采用拉模式,主动拉取消息队列中的待处理队列消息。或者,队列服务端也可以采用推模式,直接主动向虚拟容器集群中的虚拟容器服务端推送待处理队列消息。本技术实施例中,队列服务端还可以从虚拟容器服务端上报的状态信息中确定目标状态信息;目标状态信息是用于表征虚拟容器服务端可用的状态信息。本步骤中,可以检测状态信息中是否包括第一状态标识,如果包括则可以将该状态信息确定为目标状态信息。记录所述目标状态信息中的容器标识。相应地,可以记录下各目标状态信息中的容器标识,被记录的容器标识即为可以执行目标处理的可用虚拟容器服务端。相应地,在一种实现方式中,队列服务端可以向记录的所述容器标识对应的虚拟容器服务端,推送所述通知消息或待处理队列消息。具体的,可以采用push模式,由mq broker主动将消息下发给记录的容器标识所对应的虚拟容器服务端。这样,可以确保拿到待处理队列消息的虚拟容器服务端均为可用虚拟容器服务端,从而一定程度上可以确保配置文件所指示的处理任务能够成功进行。
110.或者,虚拟容器服务端的容器代理(agent)发送的拉取请求,队列服务端响应于虚拟容器集群中的虚拟容器服务端的agent发送的拉取请求,向虚拟容器服务端下发消息队列中的待处理队列消息。这样,一定程度上可以避免向容器推送的待处理队列消息过多,导致异常的问题。具体的,可以采用pull模式,虚拟容器服务端的agent作为mq消费者(consumer)拉取待处理队列消息进行消费。
111.步骤1032、所述虚拟容器服务端根据所述目标存储地址,获取所述配置文件。
112.具体的,mq consumer可以基于拉取到的待处理队列消息中的目标存储地址,从云服务端中下载配置文件,从而实现获取。
113.本技术实施例中,队列服务端作为消息发布者,基于消息传递机制,向虚拟容器集群发布通知消息,虚拟容器服务端在收到通知消息、且处于空闲状态的情况下,从队列服务端获取待处理队列消息,并从待处理队列消息中提取目标存储地址,根据目标存储地址,获取配置文件。这样,一定程度上可以确保获取配置文件的虚拟容器服务端均为处于空闲状态的虚拟容器服务端,确保处理任务能够被正常执行。
114.可选的,本技术实施例中,还可以检测所述虚拟容器集群中虚拟容器服务端的停报时长;所述停报时长用于表征当前时间与所述虚拟容器服务端最近一次上报状态信息的时间间隔。由于虚拟容器集群可能缩容或者虚拟容器服务端出现宕机,进而导致虚拟容器服务端长时间心跳停报,因此,中心调度服务端可以具体检测记录的容器标识所指示的虚拟容器服务端的停报时长。具体的,可以计算当前时间与虚拟容器服务端最近一次上报状态信息的时间之间的间隔,得到停报时长。在所述停报时长达到预设时长阈值的情况下,从记录的所述容器标识中,去除所述虚拟容器服务端的容器标识。其中,预设时长阈值可以根据实际需求设置,示例性地,预设时长阈值可以为状态信息的上报间隔的p倍。假设上报间隔为10秒,那么预设时长阈值可以为p*10秒。示例性地,p的具体值可以根据实际需求设置,例如,p可以为2。
115.如果停报时长达到预设时长阈值的情况下,则可以将该虚拟容器服务端作为过期容器服务端,自动摘除过期容器服务端。具体的,可以从记录的容器标识中,去除该虚拟容器服务端的容器标识,以避免向该虚拟容器服务端下发通知消息/待处理队列消息,从而实现过期容器摘除。
116.需要说明的是,当中心调度服务端长期收不到容器集群状态上报,则可以自动进行集群摘除,实现自动清理,并在一定时间后通过弹性扩容恢复集群可用虚拟容器服务端。由于通过上报状态信息的机制,可以汇总计算当前可用虚拟容器服务端的数量,例如,在扩容的情况下,新增的虚拟容器的虚拟容器服务端会自动上报状态信息,使得中心调度服务端可以统计到该虚拟容器服务端。因此若触发扩容或缩容,可以实现对虚拟容器集群的弹性伸缩。示例性地,可以在mq broker阻塞超时,虚拟容器服务端无法消费待处理队列消息的情况下,或者,任务量增加的情况下,进行扩容。在任务量下降的情况下进行缩容,以降低成本。其中。扩容或缩容可以是用户输入的扩容指令或缩容指令触发的。
117.可选的,在一种实现方式中,所述对象包括程序代码,所述目标处理包括基于预置的静态策略对所述程序代码进行扫描。其中,预置的静态策略可以为前述处理规则文件,静态策略的具体内容可以根据实际需求设置,本技术实施例对此不做限制。程序代码可以为不同项目、不同平台产出的代码,通过对程序代码进行扫描可以量化各项目、各平台产出的代码质量,从而为代码评估提供数据支撑,实现对多个平台的代码检查。
118.可选的,在一种实现场景中,第一服务端为目标对象管理服务端。在第一服务端为目标对象管理服务端的情况下,上述第一服务端向队列服务端发送任务处理请求,具体可以包括:所述目标对象管理服务端在检测到目标事件触发的情况下,通过第一插件向所述队列服务端发送任务处理请求。该实现场景中,目标对象管理服务端包括对象管理平台,通过在目标对象管理服务端中设置第一插件,即可使得目标对象管理服务能够向队列服务端发送任务处理请求,从而可以降低目标对象管理服务与外部的对象处理平台的接入成本。其中,此处的对象处理平台包括队列服务端以及虚拟容器集群。
119.具体的,第一插件可以是具备向队列服务端发送任务处理请求的功能的程序。任务处理请求可以是在对象管理平台检测到对目标对象的指定操作的情况下创建的,对象管理平台在检测到对目标对象的指定操作的情况下,会触发指定操作对应的操作事件(event),即,触发目标事件。相应地,可以具体在产生指定操作对应的目标事件的情况下,为目标对象创建第一格式的配置文件,进而基于配置文件生成任务处理请求并发送给队列服务端。这样,基于队列服务端中的引擎与对象管理平台绑定,可以在对对象管理平台中的目标对象执行指定操作的流程中,引入基于外部的对象处理平台执行的处理任务,从而实现对对象管理平台中目标对象进行自动化的目标处理。
120.其中,指定操作可以包括代码部署、代码测试以及代码评审(code review)中的至少一种。当然,指定操作还可以包括其他操作,本技术实施例对此不做限制。对象管理平台检测到对目标对象的指定操作,可以指的是检测到目标对象进入代码部署、代码测试和/或代码评审流程。具体的,对象管理平台可以在触发代码部署对应的目标事件、代码测试对应的目标事件、代码评审对应的目标事件的情况下,确认目标对象进入代码部署流程、代码测试流程、代码评审流程。代码部署流程可以具体为持续集成和持续部署(ci/cd)流程。其中,ci是借助工具对软件项目进行持续的自动化的编译打包构建测试发布,来检查软件交付质量的一种行为,是构建软件和完成初始测试的过程。而cd是基于持续交付的优势自动将经过测试的代码推入生产环境的过程,cd过程中将代码与基础设施相结合,确保完成所有测试并遵循策略,然后将代码部署到预期环境中。ci的流程中可以包括代码提交阶段、静态代码检查阶段、构建阶段以及测试阶段。cd的流程中可以包括使用镜像实例创建阶段(bake)、
部署阶段、验证阶段以及检测阶段。本技术实施例中,将代码扫描操作嵌入针对代码的指定操作流程中,例如,嵌入ci/cd流程,与ci/cd流程的结合,绑定研发流程,使得针对代码的指定操作流程中可以持续的自动化触发调度容器,对代码进行扫描操作。本技术实施例的对象处理平台提供对虚拟容器的调度能力,将基于扫描任务的配置文件生成的任务处理请求提交给队列服务端,从而实现对程序代码的静态扫描。
121.具体的,与ci/cd流程的结合,可以是在ci/cd的流水线(pipe l ine)流程中,提供可插拔的组件进行集成,实现对代码的静态扫描。当该组件被设置为有效,那么流程节点到达时,会自动触发可插拔的组件运行。其中,流程节点到达指的是触发代码部署对应的目标事件,可插拔的组件运行可以指的是为本次部署的代码创建配置文件,以生成并发送任务处理请求。其中,生成任务处理请求的方式可以参照前述相关描述,此处不再赘述。
122.可选的,在一种实现场景中,第一服务端为中心调度服务端。在所述第一服务端为中心调度服务端的情况下,所述第一服务端向队列服务端发送任务处理请求,具体可以包括:
123.步骤a1、所述中心调度服务端接收所述虚拟容器服务端上报的状态信息;所述状态信息用于表征虚拟容器服务端是否可用。
124.本技术实施例中,虚拟容器集群中的虚拟容器服务端可以基于心跳机制,向中心调度服务端进行心跳同步。具体的,每个虚拟容器服务端可以设置有一个容器代理(agent),agent可以视为一个进程。当虚拟容器服务端启动且处于空闲状态的情况下,可以向中心调度服务端上报表征虚拟容器服务端可用的状态信息。当虚拟容器服务端执行处理任务未处于空闲状态的情况下,可以向中心调度服务端上报表征虚拟容器服务端不可用的状态信息。其中,状态信息可以按照预设周期定时上报,例如,预设周期可以为10秒。状态信息中可以包括键名(key)以及键值(value),key为容器标识,例如,容器的网际互连协议(ip)地址,value为状态标识。状态标识可以包括表征虚拟容器服务端可用的第一状态标识以及表征虚拟容器服务端不可用的第二状态标识。例如,第一状态标识可以为'avaliable',第二状态标识可以为'running'。示例性地,假设容器标识为'172.17.0.2',表征虚拟容器服务端可用的状态信息的数据结构可以为:{'key':'172.17.0.2','value':'avaliable'}。表征虚拟容器服务端不可用的状态信息的数据结构可以为:{'key':'172.17.0.2','value':'running'}。需要说明的是,如果虚拟容器服务端异常退出或者虚拟容器服务端的agent进程停止,那么该虚拟容器服务端则不再上报状态信息。
125.步骤a2、所述中心调度服务端根据所述状态信息,确定所述虚拟容器集群中的可用容器服务端数量m。
126.具体的,中心调度服务端中的服务(server)可接收状态信息,并检测虚拟容器服务端上报的状态信息中是否携带第一状态标识,如果是,则可以确定该虚拟容器服务端可用。最后,可以统计当前可用虚拟容器服务端的数量,得到m。需要说明的是,由于虚拟容器服务端会周期性上报状态信息,因此本步骤中可以周期性的根据当前周期内接收到的状态信息确定m,以确保m的准确性。进一步地,中心调度服务端与虚拟容器集群可以处于不同域,虚拟容器集群中的虚拟容器服务端可以跨域进行上报。在一种实现方式中,虚拟容器服务端向指定应用程序接口(api)发送携带状态信息的上报请求,指定api接收携带状态信息的上报请求,并批量将状态信息上报给中心调度服务端,以供中心调度服务端更新m。
127.其中,接收的状态信息可以通过分布式缓存进行存储,中心调度服务端可以定期进行分布式库存汇总。或者,也可以在触发调度虚拟容器服务端执行处理任务的情况下,也就是向队列服务端发送任务处理请求的情况下,进行分布式可用库存计算。且在调度一个容器执行处理任务的情况下,可以通过原子扣减的方式进行库存扣减,扣减成功后才会根据当前库存向队列服务端下发任务处理请求,以尽可能避免容器超卖。需要说明的是,还可以在向队列服务端发送任务处理请求的情况下,对库存进行扣减,更新库存。具体的,可以将当前的m减去所下发的任务处理请求的数量,从而确保m的准确性。其中,当前库存指的是当前的可用容器数量,容器超卖指的是超出可用容器服务端的数量进行资源调度。
128.步骤a3、所述中心调度服务端从待处理的配置文件中选择n个配置文件。
129.步骤a4、所述中心调度服务端向所述队列服务端发送基于所述n个配置文件生成的n个任务处理请求;所述n不大于所述m。
130.其中,n以及m均为非负数的整数。选择n个配置文件时,可以按照务配置文件的生成时间由早到晚的顺序,依次选择n个配置文件,又或者,随机选择n个配置文件。待提交的配置文件可以是中心调度服务端根据用户指令创构建的。示例性地,中心调度服务端可以响应于接收到的任务处理指令,为该任务处理指令所指示的任一外部对象库创建对应的配置文件。假设任务处理指令指示1000个外部对象库,那么创建得到1000个配置文件。相应地,可以从这1000个配置文件中选择n个配置文件,并对应生成n个任务处理请求提交给队列服务端,以在虚拟容器集群中集中式进行目标处理。其中,生成任务处理请求的方式可以参照前述相关描述,此处不再赘述。外部对象库对应的配置文件,可以理解为针对外部对象库中对象所创建的处理任务的任务配置文件。外部对象库可以存在多个,一个外部对象库可以对应一个配置文件,一个外部对象库对应的配置文件,用于描述对该外部对象库进行目标处理的处理任务。也就是说,被调度的一个训容器服务端可以对一个外部对象库中的对象进行扫描,不同虚拟容器服务端所处理的外部对象库可以不同。
131.对于获取的待处理队列消息对应外部对象库的配置文件的虚拟容器服务端,该虚拟容器服务端可以调用预设脚本文件,根据配置文件下载外部对象库中的对象,将下载的对象以及配置文件中的处理规则提交给本地的执行器,由执行器对下载的对象执行目标处理,例如,对下载的对象进行扫描。需要说明的是,该配置文件中还可以定义外部对象库中所需处理的文件、所需过滤的文件。相应地,容器中运行的执行器可以仅对所需处理的文件进行扫描。需要说明的是,也可以在下载环节仅下载所需处理的文件,相应地,执行器可以直接对所下载的对象进行扫描。其中,外部对象库可以为代码仓库,目标处理可以为对代码仓库中程序代码的离线扫描,多个代码仓库可以对应多种语言。
132.本技术实施例中,根据虚拟容器集群中虚拟容器服务端上报的状态信息,确定虚拟容器集群中的可用容器服务端数量m,向队列服务端提交不超过m个的任务处理请求,从而一定程度上可以避免所需执行的任务处理请求超过可用容器服务端的数量,导致容器超卖,进而避免提交的任务处理请求无法及时得到消费导致的各种异常问题。例如,导致的任务处理请求丢失。
133.需要说明的是,n可以具体等于m,这样,可以在避免提交的任务处理请求无法及时得到消费导致的各种异常问题的同时,最大化提交的任务处理请求的数量,从而提高处理效率。
134.以目标处理为扫描为例。在一种实现方式中,中心调度服务端可以在触发对多个外部代码库的情况下,或者在某个插件执行失败的情况下,发送任务处理请求。并监听响应消息,以确定任务处理请求是否被成功响应。如果未被成功响应,则检测是否有可用的虚拟容器服务端。在有的情况下,扣减可用的虚拟容器服务端的数量,并重新下发任务处理请求。在没有的情况下,等待并进行重试。
135.可选地,所述虚拟容器服务端基于运行的目标进程在所述虚拟容器中执行所述目标处理。其中,该目标进程可以为前述处理进程。本技术实施例中还可以包括下述步骤:
136.步骤b1、所述中心调度服务端检测所述目标进程处于运行中且未进行所述目标处理的运行时长。
137.具体的,可以基于容器代理中的scanner monitor对虚拟容器内部的目标进程进行检测,其中,在目标处理为扫描的情况下,该目标进程即为扫描进程。检测目标进程的生命状态,以确定目标进程处于运行中但是未进行目标处理的运行时长。其中,scanner mon itor可以是对象处理平台自建的代理。
138.步骤b2、所述中心调度服务端在所述运行时长达到预设运行时长阈值的情况下,向所述虚拟容器发送重启指令。
139.其中,预设运行时长阈值可以根据实际需求设置,示例性地,预设运行时长阈值可以为360分钟。如果目标进程的运行时长超过预设运行时长阈值,则可以确定该目标进程长时间锁死,无法正常处理任务。因此可以系统强制对该虚拟容器进行重启,从而重启该目标进程。需要说明的是,具体可以是向虚拟容器服务端发送重启指令。虚拟容器服务端重启之后,可以通过心跳机制上报状态信息,实现虚拟容器自动恢复,使得虚拟容器具备容器自愈能力。
140.本技术实施例中,中心调度服务端检测目标进程处于运行中且未进行目标处理的运行时长。中心调度服务端在运行时长达到预设运行时长阈值的情况下,向虚拟容器发送重启指令。这样,无需人工运维,即可使得进程锁死的虚拟容器实现自动恢复。
141.可选地,本技术实施例中还可以包括下述步骤:
142.步骤c1、所述虚拟容器服务端将处理结果通过所述队列服务端发送给所述目标对象管理服务端或所述中心调度服务端。
143.其中,对对象管理平台中目标对象进行目标处理得到的处理结果,可以由虚拟容器服务端的容器代理发送给对象管理平台中的对象管理平台。具体的,可以基于容器代理中的agent monitor将该处理结果提交给队列服务端,再由队列服务端中部署的引擎将该处理结果返回给对象管理平台。由于队列服务端中部署有与对象管理平台兼容的引擎,因此可以基于引擎将处理结果返回给对象管理平台,从而确保对象管理平台可以从外部接入的对象处理平台中获取处理结果。其中,agent monitor还具体用于拉取待处理队列消息,agent monitor可以为队列服务端中部署的引擎提供的代理。
144.对外部对象库中目标对象进行目标处理得到的处理结果,可以由虚拟容器服务端的容器代理直接发送给中心调度服务端,从而使得中心调度服务端可以对各外部对象库的处理结果进行汇总。当然,容器代理还可以将对外部对象库中目标对象进行目标处理得到的处理结果,返回给其他指定设备,本技术实施例对此不做限制。
145.可选地,所述中心调度服务端从待处理的配置文件中选择n个配置文件的操作,具
体可以包括:所述中心调度服务端在检测到所述m大于预设数量阈的情况下,从待处理的配置文件中选择n个配置文件。
146.相应地,本技术实施例中还可以包括下述步骤:
147.步骤d1、所述中心调度服务端在所述m不大于所述预设数量阈值或者发送的所述n个任务处理请求未被成功响应的情况下,等待预设时长之后再次执行从待处理的配置文件中选择n个配置文件的操作。
148.其中,预设数量阈值可以根据实际需求设置,如果m大于预设数量阈值,则可以确定库充充足。反之,则可以确定库充不充足。示例性地,预设数量阈值可以为0。也就是说,本技术实施例中仅在库充充足,不为0的情况下,才会从待处理的配置文件中选择n个配置文件,向队列服务端发送任务处理请求。如果库存为0,则不会向队列服务端发送任务处理请求,从而尽可能避免因为容器超卖导致任务执行失败的问题。
149.相应地,由于m可能会动态变化,因此,可以在m为0的情况下,通过排队机制等待预设时长后再重新执行从待处理的配置文件中选择n个配置文件的操作。且在n个任务处理请求未被成功响应的情况下,任务处理失败的情况下,基于失败重试机制,等待预设时长后再重新执行从待处理的配置文件中选择n个配置文件的操作,进而保障所有的任务最终都会得到处理。
150.需要说明的是,本技术实施例中,还可以在m为0的情况下,等待预设时长之后再次检测m是否为0,以便于在检测到m不为0的情况下,及时从待处理的配置文件中选择n个配置文件,从而确保任务处理效率。其中,预设时长可以根据实际需求设置,示例性地,预设时长可以与m的计算周期相同。
151.由于任务处理请求往往多于虚拟容器服务端,例如,存在10000个外部代码库对应的10000个任务处理请求,虚拟容器集群中仅包括100个虚拟容器服务端。因此,需要确保能够稳定可靠的实现对大批量的外部代码库的扫描。本技术实施例中,在调度虚拟容器服务端时,通过避免容器超卖、控制容器进行弹性伸缩、容器自愈,一定程度上可以实现对虚拟容器的高可用调度,从而确保对象处理平台可以长期稳定可靠运行,尽可能避免人工运维。且针对目标对象进行目标处理的轻量化场景,本技术实施例采用架构简单的对象处理平台,无需进行改造,可以满足轻量化场景。相较于内部改造的方式,通过外部接入的对象处理平台,一定程度上可以避免由于内部不稳定导致任务失败的问题,进而避免由于任务失败导致处理结果在短期内出现大幅变化的问题。
152.本技术实施例中,处理结果还可以发送给持久化存储服务进行存储,以供后续使用。参照图6,示出了本技术的一种任务处理的层级结构的示意图。具体的,可以包括触发层、流转层、执行层以及持久化层。其中,触发层可以包括中心调度服务端以及对象管理平台。中心调度服务端可以基于状态计算服务进行库存扣减、基于触发器触发构建器构建配置文件,并基于构建的配置文件向流转层中的队列服务端提交任务处理请求。对象管理平台可以在检测到目标事件的情况下,基于构建的配置文件向流转层中的队列服务端提交任务处理请求。流转层中的队列服务端可以基于消息中间件向执行层中虚拟容器集群中的虚拟容器服务端提供待处理队列消息。虚拟容器集群中的虚拟容器服务端可以进行状态上报。执行目标处理,并将第一处理结果返回给中心调度服务端、通过队列服务端将第二处理结果返回给对象管理平台以及将第一处理结果以及第二处理结果发送给持久化层中的持
久化存储服务进行存储。其中,第一处理结果是对外部对象库中目标对象的处理结果,第二处理结果是对对象管理平台中目标对象的处理结果。持久化存储服务可以包括解析器(parser)、处理器(processor)以及渲染器(render),从而将结果显示给用户。
153.参照图7,示出了本技术的另一种任务处理方法的步骤流程图,应用于队列服务端,该方法包括:
154.步骤201、接收至少一个第一服务端发送的任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端。
155.步骤202、将所述任务处理请求转换为待处理队列消息。
156.步骤203、将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。
157.其中,各个步骤的具体实现方式以及所能达到的技术效果可以参照前述相应描述,此处不再赘述。
158.综上所述,本技术实施例提供的任务处理方法,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
159.参照图8,示出了本技术的又一种任务处理方法的步骤流程图,应用于第一服务端,该方法包括:
160.步骤301、基于第一格式的配置文件生成任务处理请求;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端。
161.步骤302、向队列服务端发送所述任务处理请求,以供所述队列服务端将所述任务处理请求转换为待处理队列消息,并将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。
162.其中,各个步骤的具体实现方式以及所能达到的技术效果可以参照前述相应描述,此处不再赘述。
163.综上所述,本技术实施例提供的任务处理方法,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
164.参照图9,示出了本技术的又一种任务处理方法的步骤流程图,应用于虚拟容器服务端,所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端,该方法包括:
165.步骤401、从队列服务端获取待处理队列消息,并基于所述待处理队列消息获取配
置文件;所述待处理队列消息是基于任务处理请求转换得到的,所述任务处理请求是至少一个第一服务端发送给所述队列服务端的,所述任务处理请求基于第一格式的所述配置文件生成,所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端。
166.步骤402、基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。
167.其中,各个步骤的具体实现方式以及所能达到的技术效果可以参照前述相应描述,此处不再赘述。
168.综上所述,本技术实施例提供的任务处理方法,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
169.参照图10,示出了本技术的一种任务处理系统的结构图,该系统可以包括:至少一个第一服务端501、队列服务端502以及虚拟容器服务端503;
170.所述至少一个第一服务端501,用于向所述队列服务端502发送任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;
171.所述队列服务端502,用于将所述任务处理请求转换为待处理队列消息;
172.所述虚拟容器服务端503,用于从所述队列服务端502获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件;所述虚拟容器服务端503为虚拟容器集群中的基于虚拟容器构建的服务端;
173.所述虚拟容器服务端503,还用于基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。
174.其中,该系统中各个部分所执行操作的具体实现方式以及所能达到的技术效果可以参照前述相应描述,此处不再赘述。
175.综上所述,本技术实施例提供的任务处理系统,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
176.参照图11,示出了本技术的一种任务处理装置的结构图,应用于队列服务端,该装置包括:
177.接收模块601,用于接收至少一个第一服务端发送的任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;
178.转换模块602,用于将所述任务处理请求转换为待处理队列消息;
179.提供模块603,用于将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群
中的基于虚拟容器构建的服务端。
180.综上所述,本技术实施例提供的任务处理装置,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
181.参照图12,示出了本技术的另一种任务处理装置的结构图,应用于第一服务端,该装置包括:
182.生成模块701,用于基于第一格式的配置文件生成任务处理请求;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;
183.发送模块702,用于向队列服务端发送所述任务处理请求,以供所述队列服务端将所述任务处理请求转换为待处理队列消息,并将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。
184.综上所述,本技术实施例提供的任务处理装置,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
185.参照图13,示出了本技术的又一种任务处理装置的结构图,应用于虚拟容器服务端,所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端,该装置包括:
186.第一获取模块801,用于从队列服务端获取待处理队列消息,并基于所述待处理队列消息获取配置文件;所述待处理队列消息是基于任务处理请求转换得到的,所述任务处理请求是至少一个第一服务端发送给所述队列服务端的,所述任务处理请求基于第一格式的所述配置文件生成,所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;
187.第二获取模块802,用于基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。
188.综上所述,本技术实施例提供的任务处理装置,针对第一服务端统一了配置文件的格式,并以队列服务端作为中转,即可使得虚拟容器服务端可以消费待处理队列消息获取配置文件,基于配置文件对目标对象进行目标处理。由于无需对目标对象所处目标对象管理服务端进行改造,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。
189.对于系统实施例以及装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
190.图14是本技术实施例提供的一种装置的结构示意图。参见图14,服务器900可以用于实施上述实施例中提供的任务处理方法。该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)922(例如,
一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储的或持久存储的。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
191.服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,一个或一个以上键盘956,和/或和,一个或一个以上操作系统941,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。其中,处理器922可以在服务器900上执行上述任务处理方法中的任一操作。
192.本技术还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述方法。
193.本技术提供一种装置,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行上述方法。
194.本技术还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述方法。
195.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
196.本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
197.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
198.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
199.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
200.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为
包括优选实施例以及落入本技术实施例范围的所有变更和修改。
201.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
202.以上对本技术所提供的方法及装置,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
技术特征:1.一种任务处理方法,其特征在于,所述方法包括:至少一个第一服务端向队列服务端发送任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;所述队列服务端将所述任务处理请求转换为待处理队列消息;虚拟容器服务端从所述队列服务端获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端;所述虚拟容器服务端基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。2.根据权利要求1所述的方法,其特征在于,所述第一服务端向队列服务端发送任务处理请求,包括:所述第一服务端获取所述第一格式的配置文件;所述第一服务端将所述配置文件发送至云服务端进行存储,并基于所述配置文件在云服务端的目标存储地址生成所述任务处理请求;所述第一服务端向所述队列服务端发送所述任务处理请求;所述队列服务端将所述任务处理请求转换为待处理队列消息,包括:所述队列服务端接收所述任务处理请求并从所述任务处理请求中提取所述目标存储地址;所述队列服务端基于所述目标存储地址生成待处理队列消息,并作为消息发布者向所述虚拟容器集群发布通知消息;所述虚拟容器服务端从所述队列服务端获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件,包括:所述虚拟容器服务端在收到所述通知消息、且处于空闲状态的情况下,从所述队列服务端获取所述待处理队列消息,并从所述待处理队列消息中提取所述目标存储地址;所述虚拟容器服务端根据所述目标存储地址,获取所述配置文件。3.根据权利要求1或2所述的方法,其特征在于,所述对象包括程序代码,所述目标处理包括基于预置的静态策略对所述程序代码进行扫描。4.根据权利要求1或2所述的方法,其特征在于,在所述第一服务端为目标对象管理服务端的情况下,所述第一服务端向队列服务端发送任务处理请求,包括:所述目标对象管理服务端在检测到目标事件触发的情况下,通过第一插件向所述队列服务端发送任务处理请求。5.根据权利要求1或2所述的方法,其特征在于,在所述第一服务端为中心调度服务端的情况下,所述第一服务端向队列服务端发送任务处理请求,包括:所述中心调度服务端接收所述虚拟容器服务端上报的状态信息;所述状态信息用于表征虚拟容器服务端是否可用;所述中心调度服务端根据所述状态信息,确定所述虚拟容器集群中的可用容器服务端数量m;所述中心调度服务端从待处理的配置文件中选择n个配置文件;
所述中心调度服务端向所述队列服务端发送基于所述n个配置文件生成的n个任务处理请求;所述n不大于所述m。6.一种任务处理方法,应用于队列服务端,其特征在于,所述方法包括:接收至少一个第一服务端发送的任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;将所述任务处理请求转换为待处理队列消息;将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。7.一种任务处理方法,应用于第一服务端,其特征在于,所述方法包括:基于第一格式的配置文件生成任务处理请求;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;向队列服务端发送所述任务处理请求,以供所述队列服务端将所述任务处理请求转换为待处理队列消息,并将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。8.一种任务处理方法,应用于虚拟容器服务端,所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端,其特征在于,所述方法包括:从队列服务端获取待处理队列消息,并基于所述待处理队列消息获取配置文件;所述待处理队列消息是基于任务处理请求转换得到的,所述任务处理请求是至少一个第一服务端发送给所述队列服务端的,所述任务处理请求基于第一格式的所述配置文件生成,所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。9.一种任务处理系统,其特征在于,所述系统包括:至少一个第一服务端、队列服务端以及虚拟容器服务端;所述至少一个第一服务端,用于向所述队列服务端发送任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;所述队列服务端,用于将所述任务处理请求转换为待处理队列消息;所述虚拟容器服务端,用于从所述队列服务端获取所述待处理队列消息,并基于所述待处理队列消息获取所述配置文件;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端;还用于基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。10.一种任务处理装置,应用于队列服务端,其特征在于,所述装置包括:接收模块,用于接收至少一个第一服务端发送的任务处理请求;所述任务处理请求基于第一格式的配置文件生成;所述配置文件用于指示目标对象以及所述目标对象所处目标
对象管理服务端;转换模块,用于将所述任务处理请求转换为待处理队列消息;提供模块,用于将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。11.一种任务处理装置,应用于第一服务端,其特征在于,所述装置包括:生成模块,用于基于第一格式的配置文件生成任务处理请求;所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;发送模块,用于向队列服务端发送所述任务处理请求,以供所述队列服务端将所述任务处理请求转换为待处理队列消息,并将所述待处理队列消息提供给虚拟容器服务端,以供所述虚拟容器服务端基于所述待处理队列消息获取所述配置文件,并基于所述配置文件从所述目标对象管理服务端获取所述目标对象并进行目标处理;所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。12.一种任务处理装置,应用于虚拟容器服务端,所述虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端,其特征在于,所述装置包括:第一获取模块,用于从队列服务端获取待处理队列消息,并基于所述待处理队列消息获取配置文件;所述待处理队列消息是基于任务处理请求转换得到的,所述任务处理请求是至少一个第一服务端发送给所述队列服务端的,所述任务处理请求基于第一格式的所述配置文件生成,所述配置文件用于指示目标对象以及所述目标对象所处目标对象管理服务端;第二获取模块,用于基于所述配置文件,从所述目标对象管理服务端获取所述目标对象并进行目标处理。13.一种装置,其特征在于,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行所述指令时,使得所述装置执行如权利要求1至8任一所述的方法。14.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,执行如权利要求1至8任一所述的方法。
技术总结本申请提供了一种任务处理方法、系统、装置及可读介质,涉及网络技术领域。所述方法包括:至少一个第一服务端向队列服务端发送任务处理请求;任务处理请求基于第一格式的配置文件生成;配置文件用于指示目标对象以及目标对象所处目标对象管理服务端。队列服务端将任务处理请求转换为待处理队列消息。虚拟容器服务端从队列服务端获取待处理队列消息,并基于待处理队列消息获取配置文件;虚拟容器服务端为虚拟容器集群中的基于虚拟容器构建的服务端。虚拟容器服务端基于配置文件,从目标对象管理服务端获取目标对象并进行目标处理。这样,在较为简单的架构下即可实现对目标对象的目标处理,进而一定程度上可以降低目标处理的实现成本。成本。成本。
技术研发人员:孟玉峰
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.06.13
技术公布日:2022/11/1