jenkins pipeline 运行超时后强制停止

        在Jenkins中,Pipeline是一种用于定义持续集成/持续交付(CI/CD)流程的工具。有时候,Pipeline的执行可能会超时,需要强制停止。

        要在Jenkins Pipeline中设置超时,并在超时后强制停止运行,可以使用Jenkins Pipeline的timeout指令。timeout指令允许您设置一个时间限制,并在超过该限制时中断Pipeline的执行。

下面是一个示例的Jenkins Pipeline脚本,用于设置超时并在超时后强制停止运行:

pipeline {agent anystages {stage('Build') {steps {// 执行构建步骤}}stage('Test') {steps {// 执行测试步骤}}stage('Deploy') {steps {// 执行部署步骤}}}options {timeout(time: 1, unit: 'HOURS') // 设置超时时间为1小时}
}

在上述示例中,Pipeline定义了三个阶段(Build、Test和Deploy),每个阶段都有相应的步骤。通过在Pipeline的options部分使用timeout指令,可以将超时时间设置为1小时。

如果Pipeline的执行超过了1小时,Jenkins将自动终止该Pipeline的执行,并将其标记为超时。

请注意,上述示例仅用于演示目的。您可以根据实际需求和Pipeline的复杂性进行相应的修改和调整。

############################################

设置超时

timeout(20) {..
}

默认时间单位为MINUTES,如果其他时间单位,则使用unit参数:SECONDS、MINUTES和HOURS

timeout(time: 20, unit: 'SECONDS') {..
}

任务- 超时时间

pipeline {options {timeout(time: 1, unit: 'HOURS')}stages { .. }// ..
}

 步骤 - 超时

pipeline {agent anystages {stage('Run') {steps {retry(3) {sh './deploy.sh'}timeout(time: 3, unit: 'MINUTES') {sh './ren_test.sh'}}}}
}

超时后继续执行


在上面的示例中,在阶段超时之后,流水线中止,并显示以下消息:

Sending interrupt signal to process Cancelling nested steps due to timeout

如果超时后,想要继续执行后续步骤,需要捕获异常。

pipeline {agent anystages {stage('Build-1') {options {timeout(time: 1, unit: 'HOURS') }steps {script {try {sh './run_test.sh'} catch (error) {println "Error happened, continuing"} }}}    }

############################################

Jenkins job timeout

需要使用到这款插件:build timeout plugin,我是用的Jenkins版本是2.286,默认已安装了该插件,如果你的Jenkins中没有默认安装,可以在插件管理中搜索并安装。

配置方式非常简单,如下:

  1. 首先进入你想要配置超时时长的Job,然后找到Build Environment,勾选Abort the build if it’s stuck。
  2. 然后在其中配置Timeout minutes即可。
  3. 例如我想要配置60分钟后强制停止,那就可以写60。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228966.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven——坐标和依赖

Maven的一大功能是管理项目依赖。为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标。将详细分析Maven坐标的作用,解释其每一个元素;在此基础上,再介绍如何配置Maven&…

GO 集成Prometheus

一、Prometheus介绍 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便…

浅谈数据资产价值评估

加gzh"大数据食铁兽“,了解更多大数据信息 数据是资产,是当前时代大背景下毋庸置疑的。随着科技的发展,数据的重要性越来越受到人们的关注。对于企业来说,数据是非常重要的资产,它可以为企业提供决策依据、增加市…

运维笔记111

运维笔记 Navicat中查询指定字段名所在的表名tomcat设置JVM的初始堆内存修改catalina.sh文件修改完保存并关闭tomcat启动tomcat 查询数据库连接数查询是否存在死锁 Navicat中查询指定字段名所在的表名 SELECT * FROM information_schema.COLUMNS WHERE COLUMN_NAME‘替换成你要…

Linux系统---环境变量+内核进程调度队列(选学)

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C/C》 键盘敲烂,年薪百万! 一、环境变量 1.基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如: 我们在编写CI/…

从0开始学习JavaScript--JavaScript 闭包的应用

JavaScript的高级概念中,闭包(closure)常常是一个让人感到困惑但又强大的概念。在这篇文章中,将深入探讨闭包的概念以及它在JavaScript中的各种应用场景。 什么是闭包? 在JavaScript中,闭包是指一个函数能…

MySQL系列 - 数据类型

MySQL是一种常用的关系型数据库管理系统,它支持多种数据类型,包括整数、浮点数、字符串、日期和时间等。在本文中,我们将介绍MySQL中常用的数据类型及其用法。 MySQL数据类型介绍: 1、整数类型: MySQL提供了多种整数…

3个.NET开源免费的仓库管理系统(WMS)

前言 今天给大家推荐3个.NET开源免费的WMS仓库管理系统(注意:以下排名不分先后)。 仓储管理系统介绍 仓储管理系统(Warehouse Management System,WMS)是一种用于管理和控制仓库操作的软件系统&#xff0…

Java 8 中 ReentrantLock 与 Synchronized 的区别

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

Linux下基于MPI的hello程序设计

Linux下基于MPI的hello程序设计 一、MPICH并行计算库安装实验环境部署创建SSH信任连接,实现免密钥互相连接node1安装MPICH 3.4配置NFS注意(一定要先看)环境测试 二、HELLO WORLD并行程序设计 一、MPICH并行计算库安装 在Linux环境下安装MPICH执行环境,配…

2023年汉字小达人市级比赛最后一天的整体复习建议和5个提醒

今天是2023年11月29日,明天(11月30日,星期四)就是2023年汉字小达人市级活动(市级比赛)比赛的日子了。从孩子今天16点30放学,到明天16点开始比赛,除去生活时间、写学校作业&#xff0…