Jenkins管道:for循环中的超时未重置

Jenkins管道:for循环中的超时未重置,jenkins,groovy,jenkins-pipeline,timeout,Jenkins,Groovy,Jenkins Pipeline,Timeout,我有一个jenkins管道脚本,在这个脚本中,我使用插件根据一些任务生成的一些日志文件记录一些问题 由于某些原因,有时工作会永远停留在那些记录问题任务中 我在对recordIssues调用的调用中加了一个超时,它本身在一个try/catch块中,给每个recordIssues任务一个等待“正确”结束的时间 但是,当其中一个recordIssues达到超时时,之后执行的所有recordIssues仍然会因为超时而取消,正如您在日志中看到的: [Pipeline] timeout Timeout s

我有一个jenkins管道脚本,在这个脚本中,我使用插件根据一些任务生成的一些日志文件记录一些问题

由于某些原因,有时工作会永远停留在那些记录问题任务中

我在对recordIssues调用的调用中加了一个超时,它本身在一个try/catch块中,给每个recordIssues任务一个等待“正确”结束的时间

但是,当其中一个recordIssues达到超时时,之后执行的所有recordIssues仍然会因为超时而取消,正如您在日志中看到的:

[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_AssetCheck on log file Saved\Logs\DataValidation.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_AssetCheck
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_Cook on log file Saved\Logs\DataValidation.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_Cook
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_CompileBlueprints on log file Saved\Logs\CompileAllBlueprints.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_CompileBlueprints
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_MapCheckValidation on log file Saved\Logs\MapCheckValidation.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_MapCheckValidation
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Package Swarms (Win64))
[Pipeline] isUnix
[Pipeline] isUnix
[Pipeline] isUnix
[Pipeline] bat

有什么方法可以避免这种情况吗?

事实证明,我得到的异常不是因为超时,而是因为

我将for循环替换为
record\u issues\u map.each{entry->{}
,以消除异常


为了解决recordIssues的超时问题,我先用scanForIssues调用替换了该调用,然后publishIssues

我不知道我在日志中看到了什么,对我来说,似乎所有的
recordIssues
实际上都达到了超时。你能加上时间戳吗?我还用一个简化的脚本做了一个快速测试。在循环中调用
timeout
似乎可以为我重置超时。
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_AssetCheck on log file Saved\Logs\DataValidation.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_AssetCheck
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_Cook on log file Saved\Logs\DataValidation.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_Cook
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_CompileBlueprints on log file Saved\Logs\CompileAllBlueprints.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_CompileBlueprints
[Pipeline] timeout
Timeout set to expire in 2 min 0 sec
[Pipeline] {
[Pipeline] echo
recordIsses called for parser UE4_MapCheckValidation on log file Saved\Logs\MapCheckValidation.log
[Pipeline] recordIssues
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
Timeout during recording of issues for UE4_MapCheckValidation
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Package Swarms (Win64))
[Pipeline] isUnix
[Pipeline] isUnix
[Pipeline] isUnix
[Pipeline] bat