Azure DevOps管道PowerShell任务-如何从RetryHelper捕获任何信息

nxagd54h  于 12个月前  发布在  Shell
关注(0)|答案(1)|浏览(191)

我想使用Azure DevOps Pipelines PowerShell任务中的控制选项中设置的RetryHelper中的信息。
控制台中可见的重试示例:

[warning]RetryHelper遇到任务失败,将在4000 ms后重试(尝试次数:3次中的2次)

已尝试:

  • 获取变量
  • $警告
  • Get-ScheduledTask

我没有找到任何信息。

niwlg2el

niwlg2el1#

根据任务的自动重试,
没有关于可用于任务的重试计数的信息。
因此,似乎没有内置的方法可以直接从PowerShell任务中访问RetryHelper信息。您看到的RetryHelper警告不是从任务脚本中访问的。
如果需要使用重试计数,可以在PowerShell脚本中编写一个循环,在失败之前重试命令一定次数。
示例脚本:

$maxRetries = 3
$retryInterval = 4000 # in milliseconds

for ($i = 1; $i -le $maxRetries; $i++) {
    try {
        # Your command here
         Write-Host "Hello World"
         Write-Host "this is #$i try"
         
        # If the command is successful, break out of the loop
        break
    }
    catch {
        Write-Warning "Attempt #$i failed. Retrying in $($retryInterval / 1000) seconds..."
        Start-Sleep -Milliseconds $retryInterval
    }
}

if ($i -gt $maxRetries) {
    Write-Error "Maximum number of retries reached. The operation failed."
}

字符串

相关问题