【发布时间】:2015-09-25 21:42:35
【问题描述】:
在 Jenkins 中,我有一个系统 groovy 脚本构建步骤。有什么方法可以取消长时间运行的脚本,或者在系统 groovy 脚本中添加一些代码来判断其构建是否已被取消?
【问题讨论】:
在 Jenkins 中,我有一个系统 groovy 脚本构建步骤。有什么方法可以取消长时间运行的脚本,或者在系统 groovy 脚本中添加一些代码来判断其构建是否已被取消?
【问题讨论】:
当您取消构建时,Jenkins 将中断正在运行脚本的线程。
因此您可以手动check 线程的中断状态并在某些点中止您的脚本,例如
if (Thread.currentThread().interrupted()) {
throw new InterruptedException()
}
或者您可以让 Groovy 为您完成这项工作,方法是在您的脚本中包含 ThreadInterrupt 注释,例如
@groovy.transform.ThreadInterrupt
还要确保您的所有 catch 块都不会吞下 InterruptedException。
【讨论】: