一种流水线任务循环执行方法、系统、设备及介质转让专利

申请号 : CN202311541138.8

文献号 : CN117251298B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何琦杨晶彭一宽邹方勇

申请人 : 广州嘉为科技有限公司

摘要 :

本发明提出一种流水线任务循环执行方法、系统、设备及介质,其中流水线任务循环执行方法包括:获取配置参数,配置参数由可视化矩阵配置界面上编辑获得,配置参数包括参数集合、触发条件和执行顺序;根据参数集合生成多个组合任务;在满足触发条件的情况下,根据执行顺序执行多个组合任务,直至所有组合任务执行完毕。本发明通过可视化的矩阵配置工具来实现DevOps流水线任务的循环执行,无需编写和维护复杂脚本,同时减少了循环任务重复编排的工作量,提高任务执行的效率;且用户可以根据具体需求灵活配置任务执行所需参数以及循环执行方式,满足不同的业务场景和流程需求。

权利要求 :

1.一种流水线任务循环执行方法,其特征在于,包括:获取配置参数,所述配置参数由可视化矩阵配置界面上编辑获得,所述配置参数包括参数集合、触发条件和执行顺序;

其中,所述可视化矩阵配置界面的编辑方法包括:

配置额外执行的参数组合和排除执行的参数组合;

根据额外执行的参数组合生成额外任务,额外任务在循环执行组合任务时额外执行;

根据排除执行的参数组合生成排除任务,保证在组合任务循环执行时不执行排除任务;

而所述参数集合是由多个参数组合而成的集合;所述参数集合包括CPU参数以及微服务参数,所述微服务参数用于决定在执行所述组合任务的微服务的类型,所述CPU参数用于决定执行微服务的CPU类型;

基于笛卡尔积规则将所述参数集合转化为多个组合,并分别为每个所述组合生成对应的组合任务;通过配置DevOps流水线任务执行所使用到的配置参数,设置任务之间的依赖和关系来定义任务的循环执行方式;

在满足所述触发条件的情况下,调用任务执行引擎根据所述执行顺序执行多个所述组合任务,其中,任务执行引擎负责根据任务调度器的指令有序应用矩阵配置的参数去执行任务,让任务脚本分别在不同cpu上执行开启不同微服务;直至所有所述组合任务执行完毕。

2.根据权利要求1所述的流水线任务循环执行方法,其特征在于,还包括:预先建立任务执行阶段;所述任务执行阶段包括触发阶段、集成阶段和投产阶段;并为所述集成阶段构建框架流程,所述框架流程包括拉取代码、编译和归档,在执行所述组合任务时按照预先构建的所述框架流程执行。

3.根据权利要求1所述的流水线任务循环执行方法,其特征在于,所述可视化矩阵配置界面的编辑方法包括:配置任务并发数,所述任务并发数用于决定同时执行任务的数量。

4.根据权利要求1所述的流水线任务循环执行方法,其特征在于,还包括:对所述组合任务的执行过程以及执行结果进行可视化显示。

5.一种流水线任务循环执行系统,其特征在于,执行如权利要求1 4任一所述的流水线~任务循环执行方法。

6.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器中存储指令,所述指令由处理器加载并执行,以实现如权利要求1 4任一所述的流水线任务循环执行方法。

~

7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1 4任一所述的流水线任务循环执~行方法。

说明书 :

一种流水线任务循环执行方法、系统、设备及介质

技术领域

[0001] 本发明涉及软件研发管理技术领域,尤其涉及一种流水线任务循环执行方法、系统、设备及介质。

背景技术

[0002] 目前用以实现DevOps流水线任务循环执行的方式包括两种:一、使用编程语言或脚本来实现流水线任务的循环执行;二、通过可视化编排的流水线根据业务实际情况对流水线阶段、任务等进行重复编排。
[0003] 然而这两种方式都存在一些局限性:通过编程实现流水线,编写和维护复杂的循环和条件逻辑可能会导致代码的臃肿和难以理解,且对于非技术人员来说,需要一定的编程知识和经验才能使用这些方法;通过可视化界面编排流水线则需将相同的循环内容全都编排出来,有些任务之间的依赖关系和条件执行可能需要手动管理,依然无法提高效果。

发明内容

[0004] 本发明实施例提供一种流水线任务循环执行方法,以解决相关技术存在的问题,技术方案如下:
[0005] 第一方面,本发明实施例提供了一种流水线任务循环执行方法,包括:
[0006] 获取配置参数,配置参数由可视化矩阵配置界面上编辑获得的,配置参数包括参数集合、触发条件和执行顺序;
[0007] 根据参数集合生成多个组合任务;
[0008] 在满足触发条件的情况下,根据执行顺序执行多个组合任务,直至所有组合任务执行完毕。
[0009] 在一种实施方式中,参数集合包括CPU参数以及微服务参数,微服务参数用于决定在执行组合任务的微服务的类型,CPU参数用于决定执行微服务的CPU类型。
[0010] 在一种实施方式中,组合任务的生成方法为:
[0011] 基于笛卡尔积规则将参数集合转化为多个组合,分别为每个组合生成对应的组合任务。
[0012] 在一种实施方式中,还包括:
[0013] 预先建立任务执行阶段;任务执行阶段包括触发阶段、集成阶段和投产阶段;并为集成阶段构建框架流程,框架流程包括拉取代码、编译和归档,在执行组合任务时按照预先构建的框架流程执行。
[0014] 在一种实施方式中,可视化矩阵配置界面的编辑方法包括:
[0015] 配置额外执行的参数组合和排除执行的参数组合,根据额外执行的参数组合生成额外任务,额外任务在循环执行组合任务时额外执行;
[0016] 根据排除执行的参数组合生成排除任务,保证在组合任务循环执行时不执行排除任务。
[0017] 在一种实施方式中,可视化矩阵配置界面的编辑方法包括:
[0018] 配置任务并发数,用于决定同时执行任务的数量。
[0019] 在一种实施方式中,还包括:
[0020] 对组合任务的执行过程以及执行结果进行可视化显示。
[0021] 第二方面,本发明实施例提供了一种流水线任务循环执行系统,执行如上述的流水线任务循环执行方法。
[0022] 第三方面,本发明实施例提供了一种电子设备,该装置包括:存储器和处理器。其中,该该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述各方面任一种实施方式中的方法。
[0023] 第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机程序,当计算机程序在计算机上运行时,上述各方面任一种实施方式中的方法被执行。
[0024] 上述技术方案中的优点或有益效果至少包括:
[0025] 通过可视化的矩阵配置工具来实现DevOps流水线任务的循环执行,无需编写和维护复杂脚本,降低了技术门槛和培训成本,同时减少了循环任务重复编排的工作量,提升DevOps流水线管理人员工作性能。通过矩阵配置工具和任务调度器的配合,提高任务执行的效率;且用户可以根据具体需求灵活配置任务执行所需参数以及循环执行方式,满足不同的业务场景和流程需求。
[0026] 上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。

附图说明

[0027] 在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
[0028] 图1为本发明流水线任务循环执行方法的流程示意图;
[0029] 图2为本发明流水线任务循环执行中的可视化页面图;
[0030] 图3为本发明流水线基础编排的可视化页面图;
[0031] 图4为本发明流水线任务循环执行系统的模块原理图;
[0032] 图5为本发明一实施例的电子设备的结构框图。

具体实施方式

[0033] 在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
[0034] 实施例一
[0035] 本发明实施例提供了一种流水线任务循环执行方法,通过该方法通过可视化的矩阵配置工具来实现DevOps流水线任务的循环执行,减少了循环任务重复编排的工作量,提高任务执行的效率;且用户可以根据具体需求灵活配置任务执行所需参数以及循环执行方式,满足不同的业务场景和流程需求。
[0036] 如图1所示,流水线任务循环执行方法具体包括如下步骤:
[0037] 步骤S1:获取配置参数,配置参数是在可视化矩阵配置界面上编辑获得的,配置参数包括参数集合、触发条件和执行顺序;
[0038] 步骤S2:根据参数集合生成多个组合任务;
[0039] 步骤S3:响应于满足触发条件时生成的触发信号,按照执行顺序循环执行多个组合任务,直至所有组合任务执行完毕。
[0040] 本实施例使用的是可视化矩阵配置工具,可视化矩阵配置工具提供一个可视化矩阵配置界面,使用户可以配置DevOps流水线任务执行所使用到的配置参数,可以设置任务之间的依赖和关系来定义任务的循环执行方式。
[0041] 配置参数包括了参数集合,即由多个参数组合而成的集合;本实施例中,参数集合包括CPU参数以及微服务参数,微服务参数用于决定在执行组合任务的微服务的类型,CPU参数用于决定执行微服务的CPU类型。需要注意的是,参数集合还可包括CPU参数以及微服务参数以外的其他参数,其他参数可根据流水线编排实际业务的要求进行设置。
[0042] 举个例子,矩阵配置工具配置了两组参数值分别为:
[0043] [cpu:amd64][microservice:webhook,apiserver]。
[0044] 参数集合中的CPU参数和微服务参数则决定了执行任务的CPU以及在该CPU上开启哪个微服务来执行任务。流水线内预先编排了脚本执行任务,让脚本分别在不同CPU上执行开启不同微服务,从而执行对应的任务,其中会引用到[cpu][microservice]两个参数。
[0045] 获得配置参数后,根据基于笛卡尔积规则将参数集合转化为多个组合,分别为每个组合生成对应的组合任务。继续以上述例子为例,按笛卡尔积规则可将参数组成两个组合:[adm64,webhook]、[adm64,apiserver],再生成两个任务,即在adm64架构的CPU上执行webhook微服务API,在adm64结构的CPU上执行apiserver组件。
[0046] 其后,若当前系统环境满足了触发条件,则生成触发信号;当识别到触发信号后即可调度任务执行引擎分别引用每个组合任务中的[cpu][microservice]两个参数的值,有序应用矩阵配置的配置参数循环执行多个组合任务,直至所有组合任务执行完毕,才停止循环。举个例子,如图2所示,两个组合任务分别为[adm64,webhook]、[adm64,apiserver],其中,组合任务[adm64,webhook]以及组合任务[adm64,apiserver]可以是原本就带有循环逻辑的任务;按照预设的执行顺序先执行组合任务[adm64,webhook],后执行组合任务[adm64,apiserver],两个组合任务执行完毕,即可跳转到后续步骤。还可根据实际情况自定义设置执行顺序,将多个组合任务重复排列,实现循环效果,直至重复排列的所有组合都执行完毕。
[0047] 此外,流水线编排、任务执行过程以及执行结果查看等管理,可通过流水线的可视化编排界面进行显示;在可视化编排界面上,针对某个流水线任务开启可视化矩阵配置界面,通过可视化矩阵配置界面完成参数配置,返回流水线的可视化编排界面保存、执行流水线,通过可视化编排界面查看执行结果;整个流水线的编排、执行过程以及执行结果都可通过可视化方式进行展示,使非技术人员也能够更直观地了解整个流水线的工作情况。
[0048] 此外,在设置配置参数之前,预先建立任务执行阶段;如图3所示,任务执行阶段依次包括触发阶段、集成阶段和投产阶段;其中,触发阶段、集成阶段以及投产阶段为流水线基础编排的主要内容,在执行任意任务过程中先进入触发阶段,后跳转到集成阶段,最后再进入投产阶段。
[0049] 触发阶段用于协助用户构建触发条件,其触发条件可以是自动触发的条件,也可以是手动触发。
[0050] 同时,需要为集成阶段构建框架流程,框架流程包括拉取代码、编译和归档等步骤,任务循环执行按照预先构建的框架流程依次拉取各服务代码分支、编译、归档,直至所有服务完成构建。其中,拉取代码步骤可插入对应插件,通过插件从代码库中拉取所需代码,完成任务执行。
[0051] 与此同时,还可通过可视化矩阵配置界面配置额外执行的参数组合和排除执行的参数组合,根据额外执行的参数组合生成额外任务,控制在循环执行组合任务时依然可执行额外任务;根据排除执行的参数组合生成排除任务,保证在组合任务循环执行时不执行排除任务,实现剔除目的。
[0052] 用户还可通过可视化矩阵配置界面配置任务并发数,用于决定同时执行任务的数量,提高任务执行效率。
[0053] 相比与传统技术,本实施例的优势在于:
[0054] 提供可视化的矩阵配置工具,使非技术人员也能够轻松配置任务执行的条件和顺序;
[0055] 使用矩阵配置工具,可以简化任务的循环执行和依赖管理,按矩阵配置好的参数,通过笛卡尔积规则组成多个组合,减少了编写和维护复杂脚本的工作量;
[0056] 任务调度器提高了任务执行的灵活性,DevOps流水线执行时,任务执行器将根据参数组合实例化多个任务,任务引用不同参数进行循环执行,直至组合执行完毕;
[0057] 提升了任务执行效率,降低了错误配置的风险。
[0058] 实施例二
[0059] 参考图4所示,本实施例提供一种流水线任务循环执行系统,该系统包括矩阵配置工具、任务调度器、任务执行引擎以及可视化管理模块。
[0060] 矩阵配置工具,根据可视化管理模块所提供的可视化矩阵配置界面,用户通过可视化矩阵配置界面配置DevOps流水线任务执行所使用到的配置参数,可以设置任务之间的依赖和关系来定义任务的循环执行方式;此外,还可通过可视化矩阵配置界面添加参数组合以外可执行的组合、排除参数组合内不需执行的组合,设置任务并发数等。用户在矩阵配置工具配置参数集合后,流水线任务执行之前将根据参数集合依照笛卡尔积规则实例化多个任务。
[0061] 任务调度器负责管理任务的调度和执行,根据矩阵配置中定义的执行顺序和触发条件,任务调度器按矩阵配置工具的规则发号施令,将任务提交给任务执行引擎进行执行。
[0062] 任务执行引擎负责根据任务调度器的号令有序应用矩阵配置的参数去执行任务。流水线内编排了脚本执行任务,让脚本分别在不同cpu上执行开启不同微服务,其中会引用到[cpu][microservice]两个参数。而任务调度器会根据矩阵配置工具生成的组合,一一调度任务执行引擎去分别引用每个组合这两个参数的值,循环执行任务。
[0063] 可视化管理模块,还提供DevOps流水线详情页面,在该页面中展示任务执行过程。
[0064] 本实施例通过可视化的矩阵配置工具,无需编写和维护复杂脚本,降低了技术门槛和培训成本,同时减少了循环任务重复编排的工作量,提升DevOps流水线管理人员工作性能。通过矩阵配置工具和任务调度器的配合,提高任务执行的效率。用户可以根据具体需求灵活配置任务执行所需参数以及循环执行方式,满足不同的业务场景和流程需求。
[0065] 本发明实施例系统中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
[0066] 实施例三
[0067] 图5示出根据本发明一实施例的电子设备的结构框图。如图5所示,该电子设备包括:存储器100和处理器200,存储器100内存储有可在处理器200上运行的计算机程序。处理器200执行该计算机程序时实现上述实施例中的流水线任务循环执行方法。存储器100和处理器200的数量可以为一个或多个。
[0068] 该电子设备还包括:
[0069] 通信接口300,用于与外界设备进行通信,进行数据交互传输。
[0070] 如果存储器100、处理器200和通信接口300独立实现,则存储器100、处理器200和通信接口300可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect ,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture ,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0071] 可选的,在具体实现上,如果存储器100、处理器200及通信接口300集成在一块芯片上,则存储器100、处理器200及通信接口300可以通过内部接口完成相互间的通信。
[0072] 本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现本发明实施例中提供的方法。
[0073] 本发明实施例还提供了一种芯片,该芯片包括,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本发明实施例提供的方法。
[0074] 本发明实施例还提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行发明实施例提供的方法。
[0075] 应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application  specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammablegate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
[0076] 进一步地,可选的,上述存储器可以包括只读存储器和随机存取存储器,还可以包括非易失性随机存取存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(read‑only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory ,DRAM) 、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
[0077] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
[0078] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0079] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0080] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
[0081] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0082] 应理解的是,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0083] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
[0084] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。