是否可为Azure DevOps流水线的任务或作业配置自动重试机制?
OneBranch DevOps流水线临时失败自动重试配置说明
OneBranch DevOps原生支持任务、作业两个层级的自动重试配置,完全可以覆盖套接字异常、超时这类临时性错误的自动重试场景,无需手动触发作业重试。
1. 任务层级重试(推荐针对依赖还原场景使用)
仅对单个依赖还原任务生效,不会触发其他无关任务重复执行,资源消耗更低,是这类单步骤偶发故障的优先选择。
配置时只需在对应依赖还原任务的YAML属性中添加两个参数即可:
retryCountOnTaskFailure:最大重试次数,建议设置2~3次即可,过高的重试次数会无意义拉长流水线运行时长retryIntervalInSeconds:两次重试的间隔时长,针对网络波动类问题建议设置10~30秒,给网络链路恢复预留缓冲时间
配置示例(以NuGet还原任务为例):
- task: NuGetCommand@2 displayName: 还原项目NuGet依赖 inputs: command: 'restore' feedsToUse: 'select' vstsFeed: '<你的内部依赖源标识>' # 自动重试配置 retryCountOnTaskFailure: 3 retryIntervalInSeconds: 15
所有OneBranch支持的内置任务、自定义脚本任务均支持上述两个重试参数
2. 作业层级重试(适合作业多步骤均可能出现临时故障的场景)
如果你的作业内多个步骤(比如NuGet还原、npm包拉取、镜像拉取等)都可能出现临时网络故障,可以直接给整个作业配置全局重试,无需逐个任务添加参数。
配置时在对应作业的YAML属性中添加retryCountOnJobFailure参数即可,示例:
jobs: - job: BuildService displayName: 微服务构建作业 retryCountOnJobFailure: 2 steps: - task: NuGetCommand@2 # 任务配置省略 - task: Npm@1 # 任务配置省略 - task: DotNetCoreCLI@2 # 任务配置省略
作业重试会重新运行该作业下的全部任务,若仅依赖还原步骤偶发故障,不建议使用该配置。
注意:OneBranch的重试逻辑默认只会对可重试错误触发重试,套接字异常、网络超时、依赖源临时不可用这类临时性错误均属于默认可重试范围,不会对代码语法错误、依赖包不存在这类永久性错误做无效重试。
内容的提问来源于stack exchange,提问作者jjaguirre394
相关产品推荐
相关产品推荐

