我有一个调用共享库的jenkins声明式管道作业。库中的groovy脚本执行几个快速命令,然后轮询结果(使用Thread.sleep()
),这可能需要最多10分钟。然而,5分钟后,线程被中断,这是设计的。前面链接中的讨论提到应该完成这样的工作负载
在一个步骤中,这样它可以发生在后台线程上,而不是占用这个线程
但不清楚这里暗示了什么。共享库代码是从一个步骤内的script
块调用的。
理论上,只有当程序接收到jenkins在单击stop时发送的正确信号时才退出的while循环应该工作。但是jenkins似乎不是一个管理长时间运行进程的工具,我会查看systemd或其他操作系统级别的初始化系统,这样我就可以把保持进程运行的责任传递给我的运维团队。