本申请涉及一种构建任务的执行方法、装置、计算机设备和存储介质。所述方法包括:接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;根据所述秘钥信息创建对应的秘钥对象;根据所述构建信息创建对应的任务对象;根据所述秘钥对象配置对应的pod模板;在所述任务对象中,根据所述pod模板运行对应的容器;监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。采用本方法能够提高资源利用率。利用率。利用率。
【技术实现步骤摘要】
构建任务的执行方法、装置、计算机设备和存储介质
[0001]本申请涉及计算机
,特别是涉及一种构建任务的执行方法、装置、计算机设备和存储介质。
技术介绍
[0002]随着计算机技术的发展,在微服务云容器化的趋势下,云服务治理成为运维管理的难点。持续集成(CI
‑
Continuous integration)、持续部署(CD
‑
continuous deployment)是云服务治理中不可或缺的工具,负责管理项目从代码转变成微服务的过程。
[0003]然而,目前的持续集成方式中,通常采用的是持续集成工具和插件的方式,不仅需要注入额外的控制容器,同时也无法动态控制每个构建任务内部的容器资源,因而容易导致资源利用率较低。
技术实现思路
[0004]基于此,有必要针对上述技术问题,提供一种能够提高资源利用率的构建任务的执行方法、装置、计算机设备和存储介质。
[0005]一种构建任务的执行方法,所述方法包括:
[0006]接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
[0007]根据所述秘钥信息创建对应的秘钥对象;
[0008]根据所述构建信息创建对应的任务对象;
[0009]根据所述秘钥对象配置对应的pod模板;
[0010]在所述任务对象中,根据所述pod模板运行对应的容器;
[0011]监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
[0012]在其中一个实施例中,所述根据所述秘钥对象配置对应的pod模板包括:
[0013]在所述任务对象中,根据所述秘钥对象,按照所述构建信息中的每个阶段信息,拉取对应的容器镜像;
[0014]对所述容器镜像配置对应的启动命令和挂载目录;所述启动命令用于控制多容器之间的运行顺序;所述挂载目录用于共享文件。
[0015]在其中一个实施例中,所述根据所述pod模板运行对应的容器之后,所述方法还包括:
[0016]监听所述任务对象中各个容器的状态;
[0017]读取所述任务对象中容器运行时对应的日志信息时,并将所述日志信息存放在所述挂载目录中。
[0018]在其中一个实施例中,所述方法还包括:
[0019]所述挂载目录用于使得容器之间通过挂载临时共享磁盘的方式共享文件;
[0020]所述在所述任务对象中,根据所述pod模板运行对应的容器,包括:
[0021]根据所述构建信息中的每个阶段信息,判断容器是否有依赖阶段;
[0022]若有依赖阶段,则判断所述依赖阶段完成的标志文件是否存在,若存在,则运行所述容器执行对应的阶段命令;
[0023]若没有依赖阶段,则直接运行所述容器执行对应的阶段命令。
[0024]在其中一个实施例中,所述运行所述容器执行对应的阶段命令之后,所述方法还包括:
[0025]当所述容器对应的阶段命令执行完成后,在共享磁盘中写入与所述阶段对应的特定文件;所述特定文件用于使得依赖所述阶段的其他阶段容器监听到所述特定文件时进入执行对应阶段的逻辑,否则持续等待直到所述任务对象终结。
[0026]在其中一个实施例中,所述方法还包括:
[0027]若所述依赖阶段完成的标志文件不存在,则继续等待所述标志文件,直到整个任务超时。
[0028]在其中一个实施例中,所述将所述本地文件夹中的日志信息返回至所述用户终端之后,所述方法还包括:
[0029]删除已构建的所述秘钥对象、所述任务对象以及对应的容器,并停止读取日志信息。
[0030]一种构建任务的执行装置,所述装置包括:
[0031]接收模块,用于接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
[0032]创建模块,用于根据所述秘钥信息创建对应的秘钥对象;根据所述构建信息创建对应的任务对象;
[0033]配置模块,用于根据所述秘钥对象配置对应的pod模板;
[0034]运行模块,用于在所述任务对象中,根据所述pod模板运行对应的容器;
[0035]监听模块,用于监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
[0036]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0037]接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
[0038]根据所述秘钥信息创建对应的秘钥对象;
[0039]根据所述构建信息创建对应的任务对象;
[0040]根据所述秘钥对象配置对应的pod模板;
[0041]在所述任务对象中,根据所述pod模板运行对应的容器;
[0042]监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
[0043]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0044]接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;
[0045]根据所述秘钥信息创建对应的秘钥对象;
[0046]根据所述构建信息创建对应的任务对象;
[0047]根据所述秘钥对象配置对应的pod模板;
[0048]在所述任务对象中,根据所述pod模板运行对应的容器;
[0049]监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。
[0050]上述构建任务的执行方法、装置、计算机设备和存储介质,通过接收到用户终端发送的构建请求,构建请求中携带秘钥信息和构建信息。根据秘钥信息创建对应的秘钥对象,根据构建信息创建对应的任务对象,根据秘钥对象配置对应的pod模板。在任务对象中,根据pod模板运行对应的容器,监听任务对象中运行的容器的状态,并将读取到的容器的日志信息储存至本地文件夹中,直至任务对象的状态为完成或者失败时,将本地文件夹中的日志信息返回至用户终端。由此使得,通过监听共享文件的方式,实现多阶段的构建任务,不同容器根据依赖关系等待所依赖容器完成后产生特定文件,实现多阶段容器并行或串行执行,能够对pod中多容器之间的顺序进行动态控制,无需注入额外的控制容器,从而有效提高了构建任务时的资源利用率。
附图说明
[0051]图1为一个实施例中构建任务的执行方法的应用环境图;...
【技术保护点】
【技术特征摘要】
1.一种构建任务的执行方法,所述方法包括:接收到用户终端发送的构建请求;所述构建请求中携带秘钥信息和构建信息;根据所述秘钥信息创建对应的秘钥对象;根据所述构建信息创建对应的任务对象;根据所述秘钥对象配置对应的pod模板;在所述任务对象中,根据所述pod模板运行对应的容器;监听所述任务对象中运行的所述容器的状态,并将读取到的所述容器的日志信息储存至本地文件夹中,直至所述任务对象的状态为完成或者失败时,将所述本地文件夹中的日志信息返回至所述用户终端。2.根据权利要求1所述的方法,其特征在于,所述根据所述秘钥对象配置对应的pod模板包括:在所述任务对象中,根据所述秘钥对象,按照所述构建信息中的每个阶段信息,拉取对应的容器镜像;对所述容器镜像配置对应的启动命令和挂载目录;所述启动命令用于控制多容器之间的运行顺序;所述挂载目录用于共享文件。3.根据权利要求2所述的方法,其特征在于,所述根据所述pod模板运行对应的容器之后,所述方法还包括:监听所述任务对象中各个容器的状态;读取所述任务对象中容器运行时对应的日志信息时,并将所述日志信息存放在所述挂载目录中。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述挂载目录用于使得容器之间通过挂载临时共享磁盘的方式共享文件;所述在所述任务对象中,根据所述pod模板运行对应的容器,包括:根据所述构建信息中的每个阶段信息,判断容器是否有依赖阶段;若有依赖阶段,则判断所述依赖阶段完成的标志文件是否存在,若存在,则运行所述容器执行对应的阶段命令;若没有依赖阶段,则直接运行所述容器执行对应的阶段命令。5.根据权利要求4所述的方法,其特征在于,所述运行所述容器执...
【专利技术属性】
技术研发人员:李睿川,罗利辉,李跃鹏,
申请(专利权)人:金蝶软件中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。