CN112286580B - 一种用于处理流水线作业的方法、装置及计算机设备 - Google Patents
一种用于处理流水线作业的方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN112286580B CN112286580B CN202011196162.9A CN202011196162A CN112286580B CN 112286580 B CN112286580 B CN 112286580B CN 202011196162 A CN202011196162 A CN 202011196162A CN 112286580 B CN112286580 B CN 112286580B
- Authority
- CN
- China
- Prior art keywords
- pipeline
- sub
- job
- working space
- workspace
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000012545 processing Methods 0.000 title claims abstract description 84
- 230000008569 process Effects 0.000 claims abstract description 66
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 abstract description 8
- 238000013461 design Methods 0.000 description 31
- 238000012360 testing method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及软件开发技术领域,公开了一种用于处理流水线作业的方法、装置及计算机设备,可在收到携带有项目标识和统一流水线作业地址的流水线作业触发请求后,先判断是否存在与所述项目标识对应的子工作空间,然后在判定存在时,等待至所述子工作空间被清除,才根据所述项目标识创建一个新子工作空间来触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,由此可避免存在因相同触发而影响同一项目流水线作业过程的风险,保证每次流水线作业都能正常处理完成。此外,还可最大可能地复用流水线作业过程,并采用最小的代价来避免相同触发的流水线作业被处理,以及可大大降低计算资源开销。
Description
技术领域
本发明属于软件开发技术领域,具体地涉及一种用于处理流水线作业的方法、装置及计算机设备。
背景技术
在软件开发过程中,从项目代码(即软件项目的源程序代码)提交到Gitlab(由GitLab公司开发的且基于Git的完全集成的软件开发平台)平台服务器到主动触发Jenkins(一款由Java编写的开源的持续集成工具)服务器依次处理从代码打包、服务部署、自动化测试、代码合并到分支发布推送通知的整个过程,需要有一套完整的机制能够确保过程的流水线作业和无人值守。目前对应每个项目都有独立的一套流水线作业任务Job(任务Job是Jenkins的一个执行计划,是一系列操作的集合),但是存在如下不足:(1)很多项目的流水线作业过程大体相似,一旦有新的项目创建,就需要重复建设对应的流水线作业任务Job;(2)如果提交项目代码后触发的流水线作业地址不一致,需要每次建设流水线作业任务Job后单独配置流水线作业地址;(3)如果流水线作业过程的本体结构发生变更,需要引入新的过程节点,那么所有项目的流水线作业任务Job都需要一一修改。
考虑在多个项目的流水线作业过程中,除了提交项目代码的人、提交项目代码的仓库地址、部署的服务名称、自动化测试的目录和标签不同,以及一些过程执行必要性不同外,整个流水线作业可以通过配置化的方式,完成所有项目的共用,因此提出了基于统一流水线作业任务Job处理相近项目的流水线作业过程,并为了提高流水线作业效率,会并行处理所有提交代码所触发过来的流水线作业实例。但是在并行处理过程中,可能存在因相同触发而影响同一项目流水线作业过程的风险,例如对于同一个项目,软件项目开发者A和B分别在短时间内向代码仓库提交了新的项目代码,如果基于在先提交项目代码的流水线作业实例正在执行自动化测试,而基于在后提交项目代码的流水线作业实例正在执行服务部署,将可能导致执行自动化测试的流水线作业实例出现异常。
发明内容
为了解决现有在流水线作业并行处理过程中可能存在因相同触发而影响同一项目流水线作业过程的风险问题,本发明目的在于提供一种用于处理流水线作业的方法、装置、计算机设备、计算机可读存储介质及交互系统。
第一方面,本发明提供了一种用于处理流水线作业的方法,包括:
接收来自代码仓库管理平台的且携带有项目标识和统一流水线作业地址的流水线作业触发请求,其中,所述流水线作业触发请求用于触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,所述统一流水线作业Job为可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库管理平台提交的且与所述项目标识对应的代码;
响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,其中,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
基于上述发明内容,可在收到携带有项目标识和统一流水线作业地址的流水线作业触发请求后,先判断是否存在与所述项目标识对应的子工作空间,然后在判定存在时,等待至所述子工作空间被清除,才根据所述项目标识创建一个新子工作空间来触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,由此可避免存在因相同触发而影响同一项目流水线作业过程的风险,保证每次流水线作业都能正常处理完成。此外,还可最大可能地复用流水线作业过程,并采用最小的代价来避免相同触发的流水线作业被处理,以及可通过共用统一的流水线作业任务Job并行处理对应不同项目的流水线作业实例,实现不改变单一项目作业方式的目的,同时还可在流水线作业过程发生变更时,只需要维护一套流水线作业任务Job即可,大大降低了计算资源开销。
在一个可能的设计中,在响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间之后,所述方法还包括:
若不存在,则直接根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
通过上述设计,可在判定不存在已创建的子工作空间时,直接创建一个新子工作空间来构建并处理基于新提交项目代码的流水线作业实例,确保流水线作业的及时完成。
在一个可能的设计中,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,包括:
启动计时器;
当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间;
根据所述项目标识创建所述新子工作空间。
通过上述设计,可在异常造成已创建的子工作空间没有被清除时,通过超时强制清除方式,避免造成相同触发出现阻塞的问题,确保在后的流水线作业能够及时完成。
在一个可能的设计中,在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例之后,所述方法还包括:
在处理完毕基于所述新提交项目代码的流水线作业实例时,清除所述新子工作空间。
通过上述设计,可在基于新提交项目代码的流水线作业实例完成时,及时清除当前的子工作空间,以便在收到新的触发请求后,能够及时创建新的子工作空间来构建并处理后续的流水线作业实例。
第二方面,本发明提供了一种用于处理流水线作业的方法,包括:
监控代码仓库中是否新提交有项目代码;
若有新提交项目代码,获取预设的统一流水线作业地址;
向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,以便所述Jenkins服务器响应所述流水线作业触发请求,判断在统一流水线作业任务Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中触发所述统一流水线作业Job构建并处理基于所述新提交项目代码的流水线作业实例,其中,所述统一流水线作业Job为与所述统一流水线作业地址对应的且可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库提交的且与所述项目标识对应的代码,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例。
基于上述发明内容,可在新提交项目代码后,自动触发获取预设的统一流水线作业地址,并向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,进而可方便所述Jenkins服务器在收到流水线作业触发请求后,先判断是否存在与所述项目标识对应的子工作空间,然后在判定存在时,等待至所述子工作空间被清除,才根据所述项目标识创建一个新子工作空间来触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,由此可避免存在因相同触发而影响同一项目流水线作业过程的风险,保证每次流水线作业都能正常处理完成。此外,由于所述统一流水线作业地址是指可被多个项目所共用的统一流水线作业任务Job的地址,并会根据项目标识创建一个新子工作空间来创建并处理基于新提交项目代码的流水线作业实例,因此可通过共用统一的流水线作业任务Job并行处理对应不同项目的流水线作业实例,实现不改变单一项目作业方式的目的,同时还可在流水线作业过程发生变更时,只需要维护一套流水线作业任务Job即可,大大降低了计算资源开销。
在一个可能的设计中,向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,包括:
在有至少两个新提交项目代码时,针对与所述至少两个新提交项目代码对应的各个项目标识,分别向所述Jenkins服务器发送携带有对应项目标识和所述统一流水线作业地址的流水线作业触发请求。
通过上述设计,可在有至少两个新提交项目代码时,自动地针对各个新提交项目代码分别发起触发请求,以便Jenkins服务器分别响应各个触发请求,创建对应不同项目的子工作空间,确保不同的项目能够共享同一套流水线作业任务Job,并在并行处理时不会相互干扰。
第三方面,本发明提供了一种用于处理流水线作业的装置,包括有依次通信连接的触发请求接收单元、触发请求响应单元和工作空间创建单元;
所述触发请求接收单元,用于接收来自代码仓库管理平台的且携带有项目标识和统一流水线作业地址的流水线作业触发请求,其中,所述流水线作业触发请求用于触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,所述统一流水线作业Job为可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库管理平台提交的且与所述项目标识对应的代码;
所述触发请求响应单元,用于响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,其中,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
所述工作空间创建单元,用于在判定存在所述子工作空间时,在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
在一个可能的设计中,所述工作空间创建单元还用于在判定不存在所述子工作空间时,直接根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
在一个可能的设计中,所述工作空间创建单元包括有依次通信连接的计时启动子单元、空间清除子单元和空间创建子单元;
所述计时启动子单元,用于启动计时器;
所述空间清除子单元,用于当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间;
所述空间创建子单元,用于根据所述项目标识创建所述新子工作空间。
在一个可能的设计中,还包括有通信连接所述工作空间创建单元的工作空间清除单元,用于在处理完毕基于所述新提交项目代码的流水线作业实例时,清除所述新子工作空间。
第四方面,本发明提供了另一种用于处理流水线作业的装置,包括有依次通信连接的代码提交监控单元、作业地址获取单元和触发请求发送单元;
所述代码提交监控单元,用于监控代码仓库中是否新提交有项目代码;
所述作业地址获取单元,用于在发现有新提交项目代码时,获取预设的统一流水线作业地址;
所述触发请求发送单元,用于向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,以便所述Jenkins服务器响应所述流水线作业触发请求,判断在统一流水线作业任务Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中触发所述统一流水线作业Job构建并处理基于所述新提交项目代码的流水线作业实例,其中,所述统一流水线作业Job为与所述统一流水线作业地址对应的且可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库提交的且与所述项目标识对应的代码,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例。
在一个可能的设计中,所述触发请求发送单元还用于在有至少两个新提交项目代码时,针对与所述至少两个新提交项目代码对应的各个项目标识,分别向所述Jenkins服务器发送携带有对应项目标识和所述统一流水线作业地址的流水线作业触发请求。
第五方面,本发明提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计所述的方法,或者执行如第二方面或第二方面中任意一种可能设计所述的方法。
第六方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意一种可能设计所述的方法,或者执行如第二方面或第二方面中任意一种可能设计所述的方法。
第七方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意一种可能设计所述的方法,或者执行如第二方面或第二方面中任意一种可能设计所述的方法。
第八方面,本发明提供了一种用于处理流水线作业的交互系统,包括有通信相连的处理请求设备和处理设备;
所述处理请求设备,用于执行如第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法;
所述处理设备,用于执行如第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的用于处理流水线作业的方法流程示意图。
图2是本发明提供的用于处理流水线作业的方法流程示意图。
图3是本发明提供的用于处理流水线作业的装置结构示意图。
图4是本发明提供的用于处理流水线作业的装置结构示意图。
图5是本发明提供的计算机设备的结构示意图。
图6是本发明提供的用于处理流水线作业的交互系统结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选可能设计中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
如图1所示,本实施例第一方面提供的所述用于处理流水线作业的方法,可以但不限于由Jenkins服务器所执行,且在所述Jenkins服务器中会提前生成有用于构建并依次处理代码打包、服务部署、自动化测试、代码合并和/或分支发布推送通知等一系列流水线作业动作的至少一个统一流水线作业任务Job,所述至少一个统一流水线作业任务Job中的每一个统一流水线作业Job可被多个项目所共用且对应有一个统一流水线作业地址。所述用于处理流水线作业的方法,可以但不限于包括有如下步骤S101~S103。
S101.接收来自代码仓库管理平台的且携带有项目标识和统一流水线作业地址的流水线作业触发请求,其中,所述流水线作业触发请求用于触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,所述统一流水线作业Job为可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库管理平台提交的且与所述项目标识对应的代码。
在所述步骤S101中,所述代码仓库管理平台用于集中管理软件项目开发人员所提交的项目代码,可以但不限于为由GitLab公司开发的且基于Git的完全集成的GitLab平台。所述流水线作业触发请求可以但不限于为由软件开发人员在将新代码提交到所述代码仓库管理平台后手动发起的触发请求,或者为由所述代码仓库管理平台在发现新提交项目代码后自动发起的触发请求。所述项目标识用于标记与所述新提交项目代码对应的软件项目,可以但不限于为项目唯一识别名称、项目唯一编号或用于存储对应项目代码的代码仓库唯一识别码等。所述统一流水线作业地址是指所述统一流水线作业Job的地址,需在Jenkins服务器上生成所述统一流水线作业Job后,由软件开发人员将该统一流水线作业Job的地址配置在Gitlab平台服务器本地,从而作为所述统一流水线作业地址,并在生成所述流水线作业触发请求时携带在该请求中。所述流水线作业实例是指针对提交的代码依次进行处理代码打包、服务部署、自动化测试、代码合并和/或分支发布推送通知等一系列流水线作业动作的实例。此外,所述流水线作业触发请求还可以携带有用于启动流水线作业实例的触发条件,例如与所述项目标识对应的代码仓库地址、项目唯一识别名称和项目代码分支信息等。
S102.响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,其中,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例。
在所述步骤S102中,所述预设工作空间为在所述Jenkins服务器上生成所述统一流水线作业Job时所分配的工作空间,可以在该预设工作空间中针对不同项目标识,创建对应的且相互独立的子工作空间,以便实现并发构建且处理对应提交代码所触发过来的流水线作业实例,避免不同项目的流水线作业出现相互干扰问题。如果收到多个携带有不同项目标识的流水线作业触发请求,会针对不同的项目标识来判断是否存在对应的子工作空间,然后基于判断结果独立执行后续步骤S103及其他步骤,进而可以通过创建不同的子工作空间,确保不同的项目能够共享同一套流水线作业任务Job,并在并行处理时不会相互干扰。而如果收到多个携带有同一项目标识的流水线作业触发请求,会根据接收时间的先后顺序依次判断是否存在对应的子工作空间。所述处理在子工作空间中构建的流水线作业实例的具体方式为现有常规方式,例如构建并依次处理代码打包、服务部署、自动化测试、代码合并和/或分支发布推送通知等一系列的流水线作业动作,并在处理完毕后,会自动清除所述子工作空间。
S103.若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
在所述步骤S103中,需等待至所述子工作空间被清除,具体方式可以但不限于为在等待单位时间(例如1秒)后,重新判断是否存在与所述项目标识对应的子工作空间,直到判定不存在时,认为所述子工作空间被清除。根据所述项目标识创建所述新子工作空间的具体方式为现有常规方式;在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例的具体方式也为现有常规方式。由于是根据项目标识来创建对应的且用于构建并处理基于提交项目代码的流水线作业实例的子工作空间,并在针对同一项目标识进行相同触发时,是等待在先已创建子工作空间被清除后才创建一个新子工作空间来构建并处理基于新提交项目代码的流水线作业实例,因此可以避免存在因相同触发而影响同一项目流水线作业过程的风险,保证每次流水线作业都能正常处理完成。
由此通过前述步骤S101~S103所描述的用于处理流水线作业的方法,可在收到携带有项目标识和统一流水线作业地址的流水线作业触发请求后,先判断是否存在与所述项目标识对应的子工作空间,然后在判定存在时,等待至所述子工作空间被清除,才根据所述项目标识创建一个新子工作空间来触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,由此可避免存在因相同触发而影响同一项目流水线作业过程的风险,保证每次流水线作业都能正常处理完成。此外,还可最大可能地复用流水线作业过程,并采用最小的代价来避免相同触发的流水线作业被处理,以及可通过共用统一的流水线作业任务Job并行处理对应不同项目的流水线作业实例,实现不改变单一项目作业方式的目的,同时还可在流水线作业过程发生变更时,只需要维护一套流水线作业任务Job即可,大大降低了计算资源开销。
本实施例在前述第一方面的技术方案基础上,还具体提出了一种在判定不存在已创建的子工作空间时的可能设计一,即在响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间之后,所述方法还包括但不限于有:S104.若不存在,则直接根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
由此通过上述步骤S104所描述的可能设计一,可在判定不存在已创建的子工作空间时,直接创建一个新子工作空间来构建并处理基于新提交项目代码的流水线作业实例,确保流水线作业的及时完成。
本实施例在前述第一方面或可能设计一的技术方案基础上,还具体提出了一种避免造成相同触发出现阻塞的可能设计二,即若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,包括但不限于有如下步骤S1031~S1033。
S1031.启动计时器。
S1032.当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间。
在所述步骤S1032中,所述预设时长阈值可以但不限于是参考历史流水线作业完成的最大时长和等待被响应的在先流水线作业触发请求个数进行设置,例如所述最大时长为10分钟,等待被响应的在先流水线作业触发请求个数为2个,则所述述预设时长阈值可设置为(2+1)*10=30分钟(其中的“1”对应正在被响应的在先流水线作业触发请求)。此外,清除所述已创建子工作空间的具体方式为现有常规方式。
S1033.根据所述项目标识创建所述新子工作空间。
由此通过上述步骤S1031~S1033所描述的可能设计二,可在异常造成已创建的子工作空间没有被清除时,通过超时强制清除方式,避免造成相同触发出现阻塞的问题,确保在后的流水线作业能够及时完成。
本实施例在前述第一方面及可能设计一至二中任意一种的技术方案基础上,还具体提出了一种及时清除新子工作空间的可能设计三,即在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例之后,所述方法还包括但不限于:S105.在处理完毕基于所述新提交项目代码的流水线作业实例时,清除所述新子工作空间。
由此通过上述步骤S105所描述的可能设计三,可在基于新提交项目代码的流水线作业实例完成时,及时清除当前的子工作空间,以便在收到新的触发请求后,能够及时创建新的子工作空间来构建并处理后续的流水线作业实例。
如图2所示,本实施例第二方面提供的所述用于处理流水线作业的方法,可以但不限于由用于管理提交项目代码的Gitlab平台服务器执行,以便所述Gitlab平台服务器在发现新提交项目代码后自动发起触发请求。所述用于处理流水线作业的方法,可以但不限于包括有如下步骤S201~S203。
S201.监控代码仓库中是否新提交有项目代码。
在所述步骤S201中,可以但不限于基于网络钩子(其是一种在网页开发中通过自定义回调函数来增加或更改网页表现的方法)的常规监控方式来发现在代码仓库中是否新提交有项目代码。一旦软件开发人员向代码仓库上传新项目代码,即可得到发现代码仓库中新提交有项目代码的监控结果。
S202.若有新提交项目代码,获取预设的统一流水线作业地址。
在所述步骤S202中,所述统一流水线作业地址是指可被多个项目所共用的统一流水线作业任务Job的地址,需在Jenkins服务器上生成所述统一流水线作业Job后,由软件开发人员将该统一流水线作业Job的地址配置在Gitlab平台服务器本地,从而作为预设的所述统一流水线作业地址。此外,在所述Jenkins服务器中会提前生成有用于构建并依次处理代码打包、服务部署、自动化测试、代码合并和/或分支发布推送通知等一系列流水线作业动作的至少一个统一流水线作业任务Job,所述至少一个统一流水线作业任务Job中的每一个统一流水线作业Job可被多个项目所共用且对应有一个统一流水线作业地址。
S203.向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,以便所述Jenkins服务器响应所述流水线作业触发请求,判断在统一流水线作业任务Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中触发所述统一流水线作业Job构建并处理基于所述新提交项目代码的流水线作业实例,其中,所述统一流水线作业Job为与所述统一流水线作业地址对应的且可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库提交的且与所述项目标识对应的代码,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例。
在所述步骤S203中,所述项目标识用于标记与所述新提交项目代码对应的软件项目,可以但不限于为项目唯一识别名称、项目唯一编号或用于存储对应项目代码的代码仓库唯一识别码等,并可以但不限于在新提交项目代码时与代码一起提交。此外,所述Jenkins服务器接收并响应所述流水线作业触发请求的具体方法可参见前述第一方面及可能设计一至三中任意一项所述的方法步骤。
由此通过前述步骤S201~S203所描述的用于处理流水线作业的方法,可在新提交项目代码后,自动触发获取预设的统一流水线作业地址,并向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,进而可方便所述Jenkins服务器在收到流水线作业触发请求后,先判断是否存在与所述项目标识对应的子工作空间,然后在判定存在时,等待至所述子工作空间被清除,才根据所述项目标识创建一个新子工作空间来触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,由此可避免存在因相同触发而影响同一项目流水线作业过程的风险,保证每次流水线作业都能正常处理完成。此外,由于所述统一流水线作业地址是指可被多个项目所共用的统一流水线作业任务Job的地址,并会根据项目标识创建一个新子工作空间来创建并处理基于新提交项目代码的流水线作业实例,因此可通过共用统一的流水线作业任务Job并行处理对应不同项目的流水线作业实例,实现不改变单一项目作业方式的目的,同时还可在流水线作业过程发生变更时,只需要维护一套流水线作业任务Job即可,大大降低了计算资源开销。
本实施例在前述第二方面的技术方案基础上,还具体提出了一种针对多个新提交项目代码触发处理请求的可能设计四,即向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,包括但不限于有:在有至少两个新提交项目代码时,针对与所述至少两个新提交项目代码对应的各个项目标识,分别向所述Jenkins服务器发送携带有对应项目标识和所述统一流水线作业地址的流水线作业触发请求。前述至少两个新提交项目代码可以是对应不同项目的新提交项目代码,也可以是对应同一项目的新提交项目代码,对于前者,所有的流水线作业触发请求会携带有不同的项目标识,使得所述Jenkins服务器会分别响应各个触发请求,创建对应不同项目的子工作空间,确保不同的项目能够共享同一套流水线作业任务Job,并在并行处理时不会相互干扰;而对于后者,所有的流水线作业触发请求会携带有相同的项目标识,使得所述Jenkins服务器会分别响应各个触发请求,即先判断是否存在与所述项目标识对应的子工作空间,然后在判定存在时,等待至所述子工作空间被清除,才根据所述项目标识创建一个新子工作空间来构建并处理基于新提交项目代码的流水线作业实例。
由此通过前面描述的可能设计四,可在有至少两个新提交项目代码时,自动地针对各个新提交项目代码分别发起触发请求,以便Jenkins服务器分别响应各个触发请求,创建对应不同项目的子工作空间,确保不同的项目能够共享同一套流水线作业任务Job,并在并行处理时不会相互干扰。
如图3所示,本实施例第三方面提供了一种实现第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法的虚拟装置,包括有依次通信连接的触发请求接收单元、触发请求响应单元和工作空间创建单元;
所述触发请求接收单元,用于接收来自代码仓库管理平台的且携带有项目标识和统一流水线作业地址的流水线作业触发请求,其中,所述流水线作业触发请求用于触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,所述统一流水线作业Job为可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库管理平台提交的且与所述项目标识对应的代码;
所述触发请求响应单元,用于响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,其中,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
所述工作空间创建单元,用于在判定存在所述子工作空间时,在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
在一个可能的设计中,所述工作空间创建单元还用于在判定不存在所述子工作空间时,直接根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
在一个可能的设计中,所述工作空间创建单元包括有依次通信连接的计时启动子单元、空间清除子单元和空间创建子单元;
所述计时启动子单元,用于启动计时器;
所述空间清除子单元,用于当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间;
所述空间创建子单元,用于根据所述项目标识创建所述新子工作空间。
在一个可能的设计中,还包括有通信连接所述工作空间创建单元的工作空间清除单元,用于在处理完毕基于所述新提交项目代码的流水线作业实例时,清除所述新子工作空间。
本实施例第三方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任意一种可能设计所述的方法,于此不再赘述。
如图4所示,本实施例第四方面提供了一种实现第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法的虚拟装置,包括有依次通信连接的代码提交监控单元、作业地址获取单元和触发请求发送单元;
所述代码提交监控单元,用于监控代码仓库中是否新提交有项目代码;
所述作业地址获取单元,用于在发现有新提交项目代码时,获取预设的统一流水线作业地址;
所述触发请求发送单元,用于向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,以便所述Jenkins服务器响应所述流水线作业触发请求,判断在统一流水线作业任务Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中触发所述统一流水线作业Job构建并处理基于所述新提交项目代码的流水线作业实例,其中,所述统一流水线作业Job为与所述统一流水线作业地址对应的且可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库提交的且与所述项目标识对应的代码,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例。
在一个可能的设计中,所述触发请求发送单元还用于在有至少两个新提交项目代码时,针对与所述至少两个新提交项目代码对应的各个项目标识,分别向所述Jenkins服务器发送携带有对应项目标识和所述统一流水线作业地址的流水线作业触发请求。
本实施例第四方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第二方面或第二方面中任意一种可能设计所述的方法,于此不再赘述。
如图5所示,本实施例第五方面提供了一种执行第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法,或者执行第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法的计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法,或者执行如第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input LastOutput,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器;所述收发器可以但不限于为WiFi(无线保真)无线收发器、蓝牙无线收发器、GPRS(General PacketRadio Service,通用分组无线服务技术)无线收发器和/或ZigBee(紫蜂协议,基于IEEE802.15.4标准的低功耗局域网协议)无线收发器等。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例第五方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任意一种可能设计所述的方法,或者参见第二方面或第二方面中任意一种可能设计所述的方法,于此不再赘述。
本实施例第六方面提供了一种存储包含第一方面及第一方面中任意一种可能设计所述用于处理流水线作业的方法,或者包含第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法,或者执行如第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例第六方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任意一种可能设计所述的方法,或者参见第二方面或第二方面中任意一种可能设计所述的方法,于此不再赘述。
本实施例第七方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法,或者执行如第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
如图6所示,本实施例第八方面提供了一种用于处理流水线作业的交互系统,包括有通信相连的处理请求设备和处理设备;
所述处理请求设备,用于执行如第二方面或第二方面中任意一种可能设计所述用于处理流水线作业的方法;
所述处理设备,用于执行如第一方面或第一方面中任意一种可能设计所述用于处理流水线作业的方法。
以上所描述的实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
Claims (9)
1.一种用于处理流水线作业的方法,其特征在于,包括:
接收来自代码仓库管理平台的且携带有项目标识和统一流水线作业地址的流水线作业触发请求,其中,所述流水线作业触发请求用于触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,所述统一流水线作业Job为可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库管理平台提交的且与所述项目标识对应的代码;
响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,其中,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例;
若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,包括:启动计时器;当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间,其中,所述预设时长阈值是参考历史流水线作业完成的最大时长和等待被响应的在先流水线作业触发请求个数进行设置;根据所述项目标识创建所述新子工作空间。
2.如权利要求1所述的方法,其特征在于,在响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间之后,所述方法还包括:
若不存在,则直接根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例。
3.如权利要求1或2所述的方法,其特征在于,在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例之后,所述方法还包括:
在处理完毕基于所述新提交项目代码的流水线作业实例时,清除所述新子工作空间。
4.一种用于处理流水线作业的装置,其特征在于,包括有依次通信连接的触发请求接收单元、触发请求响应单元和工作空间创建单元;
所述触发请求接收单元,用于接收来自代码仓库管理平台的且携带有项目标识和统一流水线作业地址的流水线作业触发请求,其中,所述流水线作业触发请求用于触发与所述统一流水线作业地址对应的统一流水线作业任务Job构建并处理基于新提交项目代码的流水线作业实例,所述统一流水线作业Job为可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库管理平台提交的且与所述项目标识对应的代码;
所述触发请求响应单元,用于响应所述流水线作业触发请求,判断在所述统一流水线作业Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,其中,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
所述工作空间创建单元,用于在判定存在所述子工作空间时,在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中构建并处理基于所述新提交项目代码的流水线作业实例;
所述工作空间创建单元包括有依次通信连接的计时启动子单元、空间清除子单元和空间创建子单元;
所述计时启动子单元,用于启动计时器;
所述空间清除子单元,用于当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间,其中,所述预设时长阈值是参考历史流水线作业完成的最大时长和等待被响应的在先流水线作业触发请求个数进行设置;
所述空间创建子单元,用于根据所述项目标识创建所述新子工作空间。
5.一种用于处理流水线作业的方法,其特征在于,包括:
监控代码仓库中是否新提交有项目代码;
若有新提交项目代码,获取预设的统一流水线作业地址;
向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,以便所述Jenkins服务器响应所述流水线作业触发请求,判断在统一流水线作业任务Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中触发所述统一流水线作业Job构建并处理基于所述新提交项目代码的流水线作业实例,其中,所述统一流水线作业Job为与所述统一流水线作业地址对应的且可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库提交的且与所述项目标识对应的代码,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,包括:启动计时器;当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间,其中,所述预设时长阈值是参考历史流水线作业完成的最大时长和等待被响应的在先流水线作业触发请求个数进行设置;根据所述项目标识创建所述新子工作空间。
6.如权利要求5所述的方法,其特征在于,向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,包括:
在有至少两个新提交项目代码时,针对与所述至少两个新提交项目代码对应的各个项目标识,分别向所述Jenkins服务器发送携带有对应项目标识和所述统一流水线作业地址的流水线作业触发请求。
7.一种用于处理流水线作业的装置,其特征在于,包括有依次通信连接的代码提交监控单元、作业地址获取单元和触发请求发送单元;
所述代码提交监控单元,用于监控代码仓库中是否新提交有项目代码;
所述作业地址获取单元,用于在发现有新提交项目代码时,获取预设的统一流水线作业地址;
所述触发请求发送单元,用于向Jenkins服务器发送携带有项目标识和所述统一流水线作业地址的流水线作业触发请求,以便所述Jenkins服务器响应所述流水线作业触发请求,判断在统一流水线作业任务Job的预设工作空间中是否存在与所述项目标识对应的子工作空间,若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,以在所述新子工作空间中触发所述统一流水线作业Job构建并处理基于所述新提交项目代码的流水线作业实例,其中,所述统一流水线作业Job为与所述统一流水线作业地址对应的且可针对多个不同项目标识并发构建且处理对应流水线作业实例的任务Job,所述新提交项目代码是指向所述代码仓库提交的且与所述项目标识对应的代码,所述子工作空间为所述预设工作空间中已创建的部分工作空间,用于处理在该子工作空间中构建的流水线作业实例;
若存在,则在所述子工作空间被清除时,根据所述项目标识创建一个新子工作空间,包括:启动计时器;当所述计时器的计时超过预设时长阈值时,若所述子工作空间还未被清除,则清除该子工作空间,其中,所述预设时长阈值是参考历史流水线作业完成的最大时长和等待被响应的在先流水线作业触发请求个数进行设置;根据所述项目标识创建所述新子工作空间。
8.一种计算机设备,其特征在于,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~3中任意一项所述的方法或如权利要求5~6中任意一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~3中任意一项所述的方法或如权利要求5~6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011196162.9A CN112286580B (zh) | 2020-10-31 | 2020-10-31 | 一种用于处理流水线作业的方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011196162.9A CN112286580B (zh) | 2020-10-31 | 2020-10-31 | 一种用于处理流水线作业的方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286580A CN112286580A (zh) | 2021-01-29 |
CN112286580B true CN112286580B (zh) | 2023-08-04 |
Family
ID=74354174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011196162.9A Active CN112286580B (zh) | 2020-10-31 | 2020-10-31 | 一种用于处理流水线作业的方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286580B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172904B (zh) * | 2021-12-02 | 2024-02-13 | 上海众源网络有限公司 | 一种Jenkins信息处理方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8306356B1 (en) * | 2007-09-28 | 2012-11-06 | Language Technologies, Inc. | System, plug-in, and method for improving text composition by modifying character prominence according to assigned character information measures |
CN111651352A (zh) * | 2020-05-29 | 2020-09-11 | 成都新潮传媒集团有限公司 | 一种仓库代码的合并方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105620A1 (en) * | 2001-01-29 | 2003-06-05 | Matt Bowen | System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architetures |
US10558677B2 (en) * | 2015-03-23 | 2020-02-11 | Dropbox, Inc. | Viewing and editing content items in shared folder backed integrated workspaces |
CN108196825A (zh) * | 2017-12-28 | 2018-06-22 | 新华三大数据技术有限公司 | 软件项目的构建方法及系统 |
CN109062789B (zh) * | 2018-07-17 | 2022-04-15 | 广州视源电子科技股份有限公司 | 持续集成方法、装置及设备、可读存储介质 |
CN109634612A (zh) * | 2018-12-04 | 2019-04-16 | 浙江数链科技有限公司 | 持续集成方法、系统、计算机设备和存储介质 |
CN111144839B (zh) * | 2019-12-17 | 2024-02-02 | 深圳市优必选科技股份有限公司 | 一种项目构建方法、持续集成系统及终端设备 |
CN111124429B (zh) * | 2019-12-31 | 2023-05-02 | 中国银行股份有限公司 | 持续交付方法和装置 |
CN111858370B (zh) * | 2020-07-28 | 2023-12-26 | 浪潮云信息技术股份公司 | DevOps的实现方法、装置、计算机可读介质 |
-
2020
- 2020-10-31 CN CN202011196162.9A patent/CN112286580B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8306356B1 (en) * | 2007-09-28 | 2012-11-06 | Language Technologies, Inc. | System, plug-in, and method for improving text composition by modifying character prominence according to assigned character information measures |
CN111651352A (zh) * | 2020-05-29 | 2020-09-11 | 成都新潮传媒集团有限公司 | 一种仓库代码的合并方法及装置 |
Non-Patent Citations (1)
Title |
---|
敏捷项目管理在M项目中的应用研究;靳萍;《中国优秀硕士学位论文全文数据库(电子期刊)》;I138-910 * |
Also Published As
Publication number | Publication date |
---|---|
CN112286580A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704173A (zh) | 任务调度方法、调度系统、电子设备及计算机存储介质 | |
US20150100830A1 (en) | Method and system for selecting and executing test scripts | |
CN108416449B (zh) | 一种运维方法和装置 | |
CN112527449B (zh) | 一种集群节点标签创建方法、系统及电子设备和存储介质 | |
CN103516735A (zh) | 一种网络节点升级的方法及装置 | |
CN112286580B (zh) | 一种用于处理流水线作业的方法、装置及计算机设备 | |
CN115328741A (zh) | 一种异常处理方法、装置、设备和存储介质 | |
CN113658351B (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN113391814A (zh) | 任务处理方法、装置、系统及存储介质 | |
CN103888545A (zh) | 一种分布式系统中全局型数据的处理方法和装置 | |
CN113126961B (zh) | 流水线处理方法、装置和存储介质 | |
CN116089248B (zh) | 一种写i/o突发分布预测方法、装置、设备及存储介质 | |
CN108833532B (zh) | 基于物联网的服务处理方法、装置和系统 | |
CN111784185A (zh) | 一种分布式配电通信网定时任务调度系统 | |
CN105892957A (zh) | 一种基于动态分片的分布式事务执行方法 | |
CN113342499B (zh) | 分布式任务调用方法、装置、设备、存储介质、程序产品 | |
CN113268332B (zh) | 持续集成方法及装置 | |
JP5387083B2 (ja) | ジョブ管理システムおよび方法 | |
CN115309525A (zh) | 基于微服务的分布式任务调度方法、系统、设备和介质 | |
CN113419921A (zh) | 一种任务监控方法、装置、设备以及存储介质 | |
CN111831394B (zh) | 采用kubernetes部署有状态pod的方法及装置 | |
US11669373B2 (en) | System and method for finding and identifying computer nodes in a network | |
CN113254028A (zh) | 代码处理方法、装置、电子设备及存储介质 | |
JP2002157279A (ja) | データ収集装置 | |
CN113986495A (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 |