如何设置errorStrategy实现失败进程终止但流水线其余任务正常运行?
符合需求的处理流程错误配置方案
你对errorStrategy 'ignore'的运行逻辑存在误解,该策略的实际行为完全匹配你的需求:当任务执行返回非零退出码时,会立刻终止当前失败任务的所有运行进程,仅标记该任务为失败状态,不会中断整个流程的运行,其余未提交、运行中的样本任务会正常调度和处理。
如果需要配套优化故障排查和差异化策略,可以添加以下配置:
- 保留失败任务的工作目录用于问题排查,添加配置:
process.scratch = false - 导出所有失败任务清单方便回溯,在流程配置中添加以下逻辑:
workflow.onComplete { if (workflow.failed) { def failedTaskList = workflow.failures.collect { "样本ID: ${it.task.sampleId}, 工作目录: ${it.task.workDir}" } new File("failed_tasks.log").text = failedTaskList.join("\n") } } - 针对不同故障类型配置差异化错误策略,可按任务标签拆分配置:
process { // 确定性故障的任务使用ignore策略 withLabel: 'deterministic_process' { errorStrategy = 'ignore' } // 偶发故障的任务使用重试策略 withLabel: 'flaky_process' { errorStrategy = 'retry' maxRetries = 3 } }
内容的提问来源于stack exchange,提问作者Alexlok
相关产品推荐
相关产品推荐

