CN119225800A - 构建方法、装置、存储介质、电子设备及存储介质 - Google Patents
构建方法、装置、存储介质、电子设备及存储介质 Download PDFInfo
- Publication number
- CN119225800A CN119225800A CN202411706758.7A CN202411706758A CN119225800A CN 119225800 A CN119225800 A CN 119225800A CN 202411706758 A CN202411706758 A CN 202411706758A CN 119225800 A CN119225800 A CN 119225800A
- Authority
- CN
- China
- Prior art keywords
- target
- node
- construction
- request
- progress
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000010276 construction Methods 0.000 title claims abstract description 196
- 238000000034 method Methods 0.000 claims description 52
- 238000004590 computer program Methods 0.000 claims description 23
- 238000001914 filtration Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 10
- 230000010354 integration Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供了一种构建方法、装置、存储介质、电子设备及存储介质,包括:接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应第二构建请求的第二节点,以及将第二构建请求转发给第二节点,第二节点包括目标节点;根据目标构建请求中携带的目标软件包的目标构建信息,生成用于指示第三节点构建目标软件包的目标构建任务,其中,目标构建任务中携带有用于指示第三节点上报目标构建任务的目标进度的指示信息;将目标构建任务下发到第三节点,以及,在接收到第三节点上报的目标进度的情况下,输出目标进度。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种构建方法、装置、存储介质、电子设备及存储介质。
背景技术
相关技术中,软件包的构建操作一般基于持续集成平台实现,由于持续集成平台通常直接基于接收到的软件包构建请求执行构建操作,并在处理构建工作流的同时,分出部分线程应答查询软件包构建进度的轮询请求,因此,会存在由于无法识别重复请求所导致的资源浪费问题,以及,由于需要分出部分线程应答轮询请求所导致的构建效率较低的问题。
发明内容
本申请实施例提供了一种构建方法、装置、存储介质、电子设备及存储介质,以至少解决相关技术中的软件包构建方法存在的资源浪费以及构建效率较低的问题。
根据本申请的一个实施例,提供了一种构建方法,包括:接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,所述第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应所述第二构建请求的第二节点,以及将所述第二构建请求转发给所述第二节点,所述第二节点包括所述目标节点;根据所述目标构建请求中携带的所述目标软件包的目标构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务,其中,所述目标构建任务中携带有用于指示所述第三节点上报所述目标构建任务的目标进度的指示信息;将所述目标构建任务下发到所述第三节点,以及,在接收到所述第三节点上报的所述目标进度的情况下,输出所述目标进度。
在一个示例性实施例中,输出所述目标进度包括:将所述目标进度输出到第四节点,其中,所述第四节点用于存储所述目标进度,并在接收到请求查询所述目标进度的请求消息的情况下,反馈所述目标进度。
在一个示例性实施例中,所述第一节点部署在网关中,所述第二节点部署于目标服务器中,所述第三节点部署于第一服务器中,所述第四节点部署于分布式状态机中,所述网关与所述目标服务器通过交换机连接,所述目标服务器与所述第一服务器通过第一接口连接,所述目标服务器与所述分布式状态机通过第二接口连接。
在一个示例性实施例中,所述分布式状态机的前端位于所述网关中,所述方法还包括:所述第四节点在接收到所述前端转发的所述请求消息的情况下,向所述前端反馈所述目标进度。
在一个示例性实施例中,将所述目标构建任务下发到所述第三节点之后,所述方法还包括:在接收到所述目标进度的情况下,基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新。
在一个示例性实施例中,在基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新之前,所述方法还包括:在目标数据库中创建所述目标文件,其中,所述目标文件用于记录所述目标构建任务的状态,以及,以下至少之一:所述目标软件包的信息、所述目标构建任务的信息。
在一个示例性实施例中,在将所述目标构建任务下发到所述第三节点之后,所述方法还包括:创建用于接收所述目标进度并将所述目标进度输出到所述第四节点的目标线程;向所述第四节点发送用于指示所述第四节点创建用于接收并存储所述目标进度的第一线程的信息。
在一个示例性实施例中,在根据所述目标构建请求中携带的所述目标软件包的构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务之后,所述方法还包括:所述第三节点接收所述目标构建任务,并将所述目标构建任务下达到用于执行构建操作的构建集群;所述第三节点从所述构建集群中获取所述目标构建任务的所述目标进度,并将所述目标进度发送给所述目标节点。
在一个示例性实施例中,在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述方法还包括:所述第一节点根据所述目标构建请求的类型、目标服务器中部署的所述第二节点的个数、所述目标服务器的网络拓扑、所述第二节点的负载情况、所述第二节点的任务执行优先级确定出所述目标节点。
在一个示例性实施例中,在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述方法还包括:所述第一节点根据所述第一构建请求中携带的第一构建信息确定是否重复接收到所述第一构建请求,其中,所述第一构建信息包括所述目标构建信息;所述第一节点在确定重复接收到所述第一构建请求,并且距离最近一次将所述第一构建请求转发给所述第二节点的时间间隔小于阈值的情况下,过滤掉所述第一构建请求。
在一个示例性实施例中,所述第一构建信息包括以下至少之一:所述第一构建请求所请求构建的第一软件包的标识、版本、源代码地址、源代码版本,其中,所述第一软件包包括所述目标软件包。
根据本申请的另一个实施例,提供了一种构建装置,应用于目标节点, 该装置包括:第一接收模块,用于接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,所述第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应所述第二构建请求的第二节点,以及将所述第二构建请求转发给所述第二节点,所述第二节点包括所述目标节点;生成模块,用于根据所述目标构建请求中携带的所述目标软件包的目标构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务,其中,所述目标构建任务中携带有用于指示所述第三节点上报所述目标构建任务的目标进度的指示信息;下发模块,用于将所述目标构建任务下发到所述第三节点,以及,在接收到所述第三节点上报的所述目标进度的情况下,输出所述目标进度。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
在本申请中,通过第一节点对重复的构建请求进行过滤,减少了因重复执行构建操作所造成的资源消耗,解决了相关技术中由于无法识别重复构建请求所导致的资源浪费问题,节省了资源,以及通过将第三节点上报的目标进度进行输出,使得可以在接收到轮询请求的情况下,直接输出所述目标进度,解决了相关技术中由于需要分出部分线程应答轮询请求所导致的构建效率较低的问题,提高了构建效率。
附图说明
图1是根据本申请实施例的构建方法的服务器设备的硬件结构框图;
图2是根据本申请实施例的构建方法的流程图;
图3是根据本申请实施例的构建系统的结构图一;
图4是根据本申请实施例的构建系统的结构图二;
图5是根据本申请实施例的构建方法的示意图;
图6是根据本申请实施例的构建装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是根据本申请实施例的构建方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的构建方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种构建方法,图2是根据本申请实施例的构建方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,所述第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应所述第二构建请求的第二节点,以及将所述第二构建请求转发给所述第二节点,所述第二节点包括所述目标节点;
步骤S204,根据所述目标构建请求中携带的所述目标软件包的目标构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务,其中,所述目标构建任务中携带有用于指示所述第三节点上报所述目标构建任务的目标进度的指示信息;
步骤S206,将所述目标构建任务下发到所述第三节点,以及,在接收到所述第三节点上报的所述目标进度的情况下,输出所述目标进度。
在上述步骤中,所述目标进度包括所述目标构建任务开始执行、所述目标构建任务执行完毕等等。示例性的,将所述目标构建任务下发到所述第三节点包括但不限于:所述目标节点基于超文本传输协议HTTP将所述目标构建任务下发到所述第三节点,其中,所述目标构建任务中携带有基于所述目标节点中包括的网络钩子拦截器按照根据目标构建信息基于目标规则生成的用于指示所述第三节点上报所述目标进度的网络钩子,所述网络钩子拦截器用于监听和响应所述第三节点发出的构建任务关键阶段的回调请求,所述回调请求包括但不限于HTTP请求,所述第三节点包括但不限于用于向软件包构建集群下发构建任务以及获取构建任务的构建进度进行上报的持续集成平台。
在上述步骤中,通过第一节点对重复的构建请求进行过滤,减少了因重复执行构建操作所造成的资源消耗,解决了相关技术中由于无法识别重复构建请求所导致的资源浪费问题,节省了资源,以及,通过将第三节点上报的目标进度进行输出,使得可以在接收到轮询请求的情况下,直接输出所述目标进度,解决了相关技术中由于需要分出部分线程应答轮询请求所导致的构建效率较低的问题,提高了构建效率。
其中,上述步骤的执行主体可以为服务器中的节点等,但不限于此。
在一个可选的实施例中,输出所述目标进度包括:将所述目标进度输出到第四节点,其中,所述第四节点用于存储所述目标进度,并在接收到请求查询所述目标进度的请求消息的情况下,反馈所述目标进度。
在上述步骤中,通过将目标进度输出到第四节点,使得在接收到查询目标进度的轮询请求的情况下,可以由第四节点直接反馈目标进度,从而提高轮询请求的响应速度,同时避免了相关技术中由于由构建任务的执行节点分出部分线程用于反馈目标进度所导致的构建效率较低的问题,提高了构建效率。
在一个可选的实施例中,所述第一节点部署在网关中,所述第二节点部署于目标服务器中,所述第三节点部署于第一服务器中,所述第四节点部署于分布式状态机中,所述网关与所述目标服务器通过交换机连接,所述目标服务器与所述第一服务器通过第一接口连接,所述目标服务器与所述分布式状态机通过第二接口连接。
在上述步骤中,示例性的,图3是根据本申请实施例的构建系统的结构图一,如图3所示第一节点包括过滤器、分流器,分布式状态机的前端部署在网关中,目标服务器中的第三节点部署有构建系统集群,构建系统集群中包括网络钩子拦截器,所述第一服务器中部署有持续集成平台(例如,图示的Jenkins)以及构建机集群。
在上述步骤中,示例性的,图4是根据本申请实施例的构建系统的结构图二,如图4所示,本申请中的方案包括一种高并发软件包持续构建系统,包括:过滤分流模块(包括前述的过滤器、分流器)、状态机模块(对应前述的分布式状态机)、软件包构建模块(即,前述的构建系统集群)、网络钩子拦截器模块以及构建机模块(包括前述的持续集成平台以及构建机集群)。
在一个可选的实施例中,所述分布式状态机的前端位于所述网关中,所述方法还包括:所述第四节点在接收到所述前端转发的所述请求消息的情况下,向所述前端反馈所述目标进度。
在上述步骤中,由于在分布式状态机中对目标进度进行存储,因此在接收到轮询请求的情况下,可以在分布式状态机中查询所述目标进度进行反馈,提高了轮询请求的响应速度,同时避免了相关技术中由于由构建任务的执行节点分出部分线程用于反馈目标进度所导致的构建效率较低的问题,提高了构建效率。
在一个可选的实施例中,将所述目标构建任务下发到所述第三节点之后,所述方法还包括:在接收到所述目标进度的情况下,基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新。
在上述步骤中,示例性的,所述目标文件包括但不限于:数据库中用于记录目标构建任务的详细信息和状态的记录,文件系统中的文件,键值存储中用于记录目标构建任务的目标状态的条目等等。所述目标文件的更新过程包括但不限于:目标节点根据网络钩子拦截器中的目标线程接收到的目标进度,解析目标进度以得到目标信息(例如,进度信息、错误状态),根据目标信息更新目标文件中记录的信息(例如,进行UPDATE操作、进行文件的写入或内存数据结构的修改等等)。
在上述步骤中,通过对目标进度进行记录,使得可以在目标构建执行操作执行完毕的情况下,释放目标线程,从而提高资源利用率。
在一个可选的实施例中,在基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新之前,所述方法还包括:在目标数据库中创建所述目标文件,其中,所述目标文件用于记录所述目标构建任务的状态,以及,以下至少之一:所述目标软件包的信息、所述目标构建任务的信息。
在上述步骤中,示例性的,所述目标数据库包括但不限于:关系型数据库、非关系型数据库、键值存储数据库(例如,Redis)、文档存储数据库、列式数据库等等。所述目标文件中包括但不限于记录有以下信息:用于区别于其他构建任务的目标构建任务的任务标识符、目标进度、目标构建任务的开始时间及结束时间、构建任务的故障信息、目标构建任务依赖的资源或任务、用于目标执行构建任务的参数及配置、目标构建任务消耗的资源(例如,如CPU计算资源、内存和磁盘空间等等)等等。
在上述步骤中,通过在目标数据库中创建目标文件来记录目标构建任务的状态,实现了构建任务管理的系统化和标准化,便于统一管理和查询;通过记录任务标识符有助于区分不同的构建任务,实现任务的精确追踪和管理;通过记录目标进度使得监控构建任务的进度变得更加直观和方便,有助于及时调整项目计划和资源分配;通过记录开始时间和结束时间有助于分析构建任务的耗时,优化构建流程,提高效率; 通过记录故障信息有助于快速定位问题,加速故障响应和修复,减少系统停机时间;通过记录依赖的资源或任务有助于理解任务间的依赖关系,优化任务调度和执行顺序; 通过记录用于执行构建任务的参数和配置有助于重现构建过程,便于调试和文档化; 通过记录资源消耗有助于监控和优化资源使用,降低成本,通过分析资源消耗数据,可以识别瓶颈,进行性能优化。
在一个可选的实施例中,在将所述目标构建任务下发到所述第三节点之后,所述方法还包括:创建用于接收所述目标进度并将所述目标进度输出到所述第四节点的目标线程;向所述第四节点发目标线程发送用于指示所述第四节点创建用于接收并存储所述目标进度的第一线程的信息。
在上述步骤中,示例性的,图5是根据本申请实施例的构建方法的示意图,如图5所示,分布式状态机中的在接收到网络钩子拦截器中的目标线程发送的指示信息的情况下,创建第一线程,并在第一线程中记录目标构建任务的目标进度为就绪,所述第二线程在后续接收到目标线程发送的目标进度后,对记录的目标构建任务的目标进度进行更新(例如,将目标进行更新为开始、结束(成功、失败)等等)。
在上述步骤中,通过接收并存储所述目标进度,使得在接收到轮询请求的情况下,可以查询所述目标进度进行反馈,提高了轮询请求的响应速度,同时避免了相关技术中由于由构建任务的执行节点分出部分线程用于反馈目标进度所导致的构建效率较低的问题,提高了构建效率。
在一个可选的实施例中,在根据所述目标构建请求中携带的所述目标软件包的构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务之后,所述方法还包括:所述第三节点接收所述目标构建任务,并将所述目标构建任务下达到用于执行构建操作的构建集群;所述第三节点从所述构建集群中获取所述目标构建任务的所述目标进度,并将所述目标进度发送给所述目标节点。
在上述步骤中,将所述目标构建任务下达到用于执行构建操作的构建集群包括但不限于:持续集成平台基于安全外壳协议SSH将所述目标构建任务下达到所述构建集群。
在上述步骤中,通过采用多节点分布式处理的方式,分别通过第三节点对构建进度进行监控,通过构建集群执行构建操作,使得在部分节点发生故障的情况下,不影响其他节点的正常运行,提高了构建操作的稳定性 。
在一个可选的实施例中,在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述方法还包括:所述第一节点根据所述目标构建请求的类型、目标服务器中部署的所述第二节点的个数、所述目标服务器的网络拓扑、所述第二节点的负载情况、所述第二节点的任务执行优先级确定出所述目标节点。
在上述步骤中,所述第二节点的任务执行优先级包括但不限于通过第二节点的历史性能数据、故障恢复能力、处理速度、稳定性等因素确定。
在上述步骤中,通过综合考虑目标构建请求的类型以及第二节点的上述因素,使得可以将任务分配给性能最优的节点,确保资源得到有效利用,同时缩短构建时间,提高整体构建流程的效率。
在一个可选的实施例中,在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述方法还包括:所述第一节点根据所述第一构建请求中携带的第一构建信息确定是否重复接收到所述第一构建请求,其中,所述第一构建信息包括所述目标构建信息;所述第一节点在确定重复接收到所述第一构建请求,并且距离最近一次将所述第一构建请求转发给所述第二节点的时间间隔小于阈值的情况下,过滤掉所述第一构建请求。
在上述步骤中,所述阈值包括但不限于:1小时、2小时、3小时等等,所述阈值可预先设定,所述阈值可根据第一构建请求请求构建的第一软件包的类型进行调整,在上述步骤中,通过对重复的构建请求进行过滤,减少了因重复执行构建操作所造成的资源消耗,解决了相关技术中由于无法识别重复构建请求所导致的资源浪费问题,节省了资源。
在一个可选的实施例中,所述第一构建信息包括以下至少之一:所述第一构建请求所请求构建的第一软件包的标识、版本、源代码地址、源代码版本,其中,所述第一软件包包括所述目标软件包。
在本申请中的上述实施例中,提出了一种高并发下的软件包持续构建方法,通过引入网关实现了请求的过滤以及负载均衡,并且可以提供缓存式构建状态查询服务,使得在高并发场景下也能具有很好的性能。在本申清中,由于状态轮询请求不会透传到持续集成平台,大大降低了应答状态轮询请求所消耗的网络带宽,同时采用分布式状态机应答状态轮询请求,提高了轮询性能。在本申清中,通过引入网络钩子技术,设计网络钩子拦截器,以网络回调请求代替轮询状态交互,减少了同步等待带来的资源占用,同时解构了构建流程,提高了整体的可扩展性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种构建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的构建装置的结构框图,应用于目标节点,如图6所示,该装置包括:第一接收模块62,用于接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,所述第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应所述第二构建请求的第二节点,以及将所述第二构建请求转发给所述第二节点,所述第二节点包括所述目标节点;生成模块64,用于根据所述目标构建请求中携带的所述目标软件包的目标构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务,其中,所述目标构建任务中携带有用于指示所述第三节点上报所述目标构建任务的目标进度的指示信息;下发模块66,用于将所述目标构建任务下发到所述第三节点,以及,在接收到所述第三节点上报的所述目标进度的情况下,输出所述目标进度。
在一个可选的实施例中,所述下发模块66包括:输出单元,用于将所述目标进度输出到第四节点,其中,所述第四节点用于存储所述目标进度,并在接收到请求查询所述目标进度的请求消息的情况下,反馈所述目标进度。
在一个可选的实施例中,所述第一节点部署在网关中,所述第二节点部署于目标服务器中,所述第三节点部署于第一服务器中,所述第四节点部署于分布式状态机中,所述网关与所述目标服务器通过交换机连接,所述目标服务器与所述第一服务器通过第一接口连接,所述目标服务器与所述分布式状态机通过第二接口连接。
在一个可选的实施例中,所述装置还包括:反馈模块,用于所述分布式状态机的前端位于所述网关中,所述第四节点在接收到所述前端转发的所述请求消息的情况下,向所述前端反馈所述目标进度。
在一个可选的实施例中,所述装置还包括:更新模块,用于将所述目标构建任务下发到所述第三节点之后,在接收到所述目标进度的情况下,基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新。
在一个可选的实施例中,所述装置还包括:第一创建模块,用于在基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新之前,在目标数据库中创建所述目标文件,其中,所述目标文件用于记录所述目标构建任务的状态,以及,以下至少之一:所述目标软件包的信息、所述目标构建任务的信息。
在一个可选的实施例中,所述装置还包括:第二创建模块,用于在将所述目标构建任务下发到所述第三节点之后,创建用于接收所述目标进度并将所述目标进度输出到所述第四节点的目标线程;发送模块,用于向所述第四节点发送用于指示所述第四节点创建用于接收并存储所述目标进度的第一线程的信息。
在一个可选的实施例中,第三节点包括:第二接收模块,用于在根据所述目标构建请求中携带的所述目标软件包的构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务之后,接收所述目标构建任务,并将所述目标构建任务下达到用于执行构建操作的构建集群;获取模块,用于从所述构建集群中获取所述目标构建任务的所述目标进度,并将所述目标进度发送给所述目标节点。
在一个可选的实施例中,第一节点还包括:第一确定模块,用于在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述第一节点根据所述目标构建请求的类型、目标服务器中部署的所述第二节点的个数、所述目标服务器的网络拓扑、所述第二节点的负载情况、所述第二节点的任务执行优先级确定出所述目标节点。
在一个可选的实施例中,第一节点还包括:第二确定模块,用于在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述第一节点根据所述第一构建请求中携带的第一构建信息确定是否重复接收到所述第一构建请求,其中,所述第一构建信息包括所述目标构建信息;过滤模块,用于所述第一节点在确定重复接收到所述第一构建请求,并且距离最近一次将所述第一构建请求转发给所述第二节点的时间间隔小于阈值的情况下,过滤掉所述第一构建请求。
在一个可选的实施例中,所述第一构建信息包括以下至少之一:所述第一构建请求所请求构建的第一软件包的标识、版本、源代码地址、源代码版本,其中,所述第一软件包包括所述目标软件包。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种构建方法,其特征在于,应用于目标节点,
该方法包括:
接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,所述第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应所述第二构建请求的第二节点,以及将所述第二构建请求转发给所述第二节点,所述第二节点包括所述目标节点;
根据所述目标构建请求中携带的所述目标软件包的目标构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务,其中,所述目标构建任务中携带有用于指示所述第三节点上报所述目标构建任务的目标进度的指示信息;
将所述目标构建任务下发到所述第三节点,以及,在接收到所述第三节点上报的所述目标进度的情况下,输出所述目标进度。
2.根据权利要求1所述的方法,其特征在于,
输出所述目标进度包括:将所述目标进度输出到第四节点,其中,所述第四节点用于存储所述目标进度,并在接收到请求查询所述目标进度的请求消息的情况下,反馈所述目标进度。
3.根据权利要求2所述的方法,其特征在于,
所述第一节点部署在网关中,所述第二节点部署于目标服务器中,所述第三节点部署于第一服务器中,所述第四节点部署于分布式状态机中,所述网关与所述目标服务器通过交换机连接,所述目标服务器与所述第一服务器通过第一接口连接,所述目标服务器与所述分布式状态机通过第二接口连接。
4.根据权利要求3所述的方法,其特征在于,
所述分布式状态机的前端位于所述网关中,所述方法还包括:所述第四节点在接收到所述前端转发的所述请求消息的情况下,向所述前端反馈所述目标进度。
5.根据权利要求1所述的方法,其特征在于,
将所述目标构建任务下发到所述第三节点之后,所述方法还包括:
在接收到所述目标进度的情况下,基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新。
6.根据权利要求5所述的方法,其特征在于,
在基于所述目标进度对目标文件中记录的所述目标构建任务的状态进行更新之前,所述方法还包括:
在目标数据库中创建所述目标文件,其中,所述目标文件用于记录所述目标构建任务的状态,以及,以下至少之一:所述目标软件包的信息、所述目标构建任务的信息。
7.根据权利要求2所述的方法,其特征在于,
在将所述目标构建任务下发到所述第三节点之后,所述方法还包括:
创建用于接收所述目标进度并将所述目标进度输出到所述第四节点的目标线程;
向所述第四节点发送用于指示所述第四节点创建用于接收并存储所述目标进度的第一线程的信息。
8.根据权利要求1所述的方法,其特征在于,
在根据所述目标构建请求中携带的所述目标软件包的构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务之后,所述方法还包括:
所述第三节点接收所述目标构建任务,并将所述目标构建任务下达到用于执行构建操作的构建集群;
所述第三节点从所述构建集群中获取所述目标构建任务的所述目标进度,并将所述目标进度发送给所述目标节点。
9.根据权利要求1所述的方法,其特征在于,
在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述方法还包括:
所述第一节点根据所述目标构建请求的类型、目标服务器中部署的所述第二节点的个数、所述目标服务器的网络拓扑、所述第二节点的负载情况、所述第二节点的任务执行优先级确定出所述目标节点。
10.根据权利要求1所述的方法,其特征在于,
在接收第一节点发送的用于请求构建目标软件包的目标构建请求之前,所述方法还包括:
所述第一节点根据所述第一构建请求中携带的第一构建信息确定是否重复接收到所述第一构建请求,其中,所述第一构建信息包括所述目标构建信息;
所述第一节点在确定重复接收到所述第一构建请求,并且距离最近一次将所述第一构建请求转发给所述第二节点的时间间隔小于阈值的情况下,过滤掉所述第一构建请求。
11.根据权利要求10所述的方法,其特征在于,
所述第一构建信息包括以下至少之一:所述第一构建请求所请求构建的第一软件包的标识、版本、源代码地址、源代码版本,其中,所述第一软件包包括所述目标软件包。
12.一种构建装置,其特征在于,应用于目标节点,
该装置包括:
第一接收模块,用于接收第一节点发送的用于请求构建目标软件包的目标构建请求,其中,所述第一节点用于过滤重复接收的第一构建请求以得到第二构建请求,并按照预定规则确定出用于响应所述第二构建请求的第二节点,以及将所述第二构建请求转发给所述第二节点,所述第二节点包括所述目标节点;
生成模块,用于根据所述目标构建请求中携带的所述目标软件包的目标构建信息,生成用于指示第三节点构建所述目标软件包的目标构建任务,其中,所述目标构建任务中携带有用于指示所述第三节点上报所述目标构建任务的目标进度的指示信息;
下发模块,用于将所述目标构建任务下发到所述第三节点,以及,在接收到所述第三节点上报的所述目标进度的情况下,输出所述目标进度。
13.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至11任一项中所述的方法的步骤。
14.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现所述权利要求1至11任一项中所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,
所述计算机程序被处理器执行时实现权利要求1至11任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411706758.7A CN119225800B (zh) | 2024-11-26 | 2024-11-26 | 构建方法、装置、存储介质、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411706758.7A CN119225800B (zh) | 2024-11-26 | 2024-11-26 | 构建方法、装置、存储介质、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN119225800A true CN119225800A (zh) | 2024-12-31 |
CN119225800B CN119225800B (zh) | 2025-03-14 |
Family
ID=94040477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411706758.7A Active CN119225800B (zh) | 2024-11-26 | 2024-11-26 | 构建方法、装置、存储介质、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN119225800B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855627A (zh) * | 2019-01-16 | 2020-02-28 | 星环信息科技(上海)有限公司 | 应用部署方法、装置、设备及介质 |
CN115357258A (zh) * | 2022-10-24 | 2022-11-18 | 北京闪马智建科技有限公司 | 应用的部署方法、装置、存储介质及电子装置 |
CN118536169A (zh) * | 2024-04-30 | 2024-08-23 | 苏州元脑智能科技有限公司 | 软件包签名系统、方法、电子设备及存储介质 |
-
2024
- 2024-11-26 CN CN202411706758.7A patent/CN119225800B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855627A (zh) * | 2019-01-16 | 2020-02-28 | 星环信息科技(上海)有限公司 | 应用部署方法、装置、设备及介质 |
CN115357258A (zh) * | 2022-10-24 | 2022-11-18 | 北京闪马智建科技有限公司 | 应用的部署方法、装置、存储介质及电子装置 |
CN118536169A (zh) * | 2024-04-30 | 2024-08-23 | 苏州元脑智能科技有限公司 | 软件包签名系统、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN119225800B (zh) | 2025-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160344582A1 (en) | Call home cluster | |
CN111274052A (zh) | 数据分发方法、服务器及计算机可读存储介质 | |
CN105391648A (zh) | 使网络流对准处理资源的技术 | |
CN111064591B (zh) | 数据汇聚方法、装置、设备、存储介质和系统 | |
CN110636127B (zh) | 一种各信息数据间的通信处理方法及系统 | |
WO2024066626A1 (zh) | 实时音视频网络的路由规划方法及装置 | |
CN112052227A (zh) | 数据变更日志的处理方法、装置和电子设备 | |
WO2022016969A1 (zh) | 一种数据处理方法及装置 | |
CN102148848B (zh) | 一种数据的管理方法和系统 | |
CN102118274A (zh) | 一种状态监控方法、装置和系统 | |
CN113055490B (zh) | 数据的存储方法及装置 | |
CN119225800B (zh) | 构建方法、装置、存储介质、电子设备及存储介质 | |
CN102480369A (zh) | 一种网络管理系统及性能采集的方法 | |
US12238523B2 (en) | Bundled audit for stale session bindings | |
CN112363838A (zh) | 数据处理方法及装置、存储介质、电子装置 | |
CN112966051A (zh) | 一种基于分布式的数据交换系统及方法 | |
CN117573473A (zh) | 一种电力系统机房设备运维系统、运维方法及相应设备 | |
US20230388205A1 (en) | Cluster availability monitoring and alerting | |
CN115883639A (zh) | 一种web实时消息推送方法及装置、设备、存储介质 | |
CN110764882B (zh) | 分布式管理方法、分布式管理系统及装置 | |
CN113220759A (zh) | 大数据存储服务共享方法、装置、计算机设备和存储介质 | |
JP4863126B2 (ja) | サーバ監視システム及びサーバ監視方法 | |
CN113742416A (zh) | 数据处理方法、设备、系统及存储介质 | |
CN112437146A (zh) | 一种设备状态同步方法、装置及系统 | |
CN115941427B (zh) | 应用服务器的远程管理方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |