Azure DevOps 管道任务或作业配置重试的方法是什么?

9

我目前有一个OneBranch DevOps流水线,在还原包的过程中偶尔会失败,通常是由于一些瞬态错误,如套接字异常或超时引起的。重新尝试该作业通常可以解决问题。

是否有一种方法可以配置作业或任务以进行重试?

2个回答

12

11

更新:

新增了任务自动重试功能,您在阅读此文时应该已经可以使用了。

使用方法如下:

- task: <name of task>
   retryCountOnTaskFailure: <max number of retries>
   ...

使用重试时需要注意以下几点:
  • 失败的任务会立即进行重试。
  • 没有假设任务的幂等性。如果任务具有副作用(例如部分地创建了外部资源),则第二次运行时可能会失败。
  • 任务不提供已重试的次数信息。
  • 在任务重试之前,任务日志中会添加一条警告表示该任务之前已经失败过。
  • 所有尝试重试任务的次数都将显示在UI中,作为同一个任务节点的一部分。

原始答案:

使用原生任务无法实现此功能。但是,如果您能够编写脚本,则可以在其中放置此类逻辑。

例如,您可以像这样执行此操作:

n=0
until [ "$n" -ge 5 ]
do
   command && break  # substitute your command here
   n=$((n+1)) 
   sleep 15
done

然而,在常规任务中没有原生的方法来实现这一点。

自动重试任务在路线图上,因此它可能会在不久的将来发生变化。

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接