jenkins pipeline 运行超时后强制停止

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

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

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

pipeline {
    agent any
    
    stages {
        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 any
    stages {
        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 any
    stages {
        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。

相关推荐

  1. 端jar包部署常见运行停止命令

    2023-12-06 21:14:02       37 阅读
  2. Mongodb使用killCursors停止运行的cursor

    2023-12-06 21:14:02       56 阅读
  3. 如何停止一个运行中的Docker容器

    2023-12-06 21:14:02       65 阅读
  4. CentOS停止维护,可以替代的新系统

    2023-12-06 21:14:02       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 21:14:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 21:14:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 21:14:02       82 阅读
  4. Python语言-面向对象

    2023-12-06 21:14:02       91 阅读

热门阅读

  1. Qt 6.6.1 修复了 400 多个 bug

    2023-12-06 21:14:02       53 阅读
  2. 练习题——-【学习补档】日期差值

    2023-12-06 21:14:02       56 阅读
  3. 【BroadcastReceiver】

    2023-12-06 21:14:02       51 阅读
  4. C++ 中的运算符重载(二)

    2023-12-06 21:14:02       53 阅读
  5. k8s项目部署流程

    2023-12-06 21:14:02       63 阅读
  6. 每日一题(LeetCode)----哈希表--三数之和

    2023-12-06 21:14:02       71 阅读
  7. Spring一些基础问题整理

    2023-12-06 21:14:02       47 阅读
  8. OpenCASCADE:引擎简介与编程指南

    2023-12-06 21:14:02       61 阅读