Private/Invoke-WithRetry.ps1
|
function Invoke-WithRetry { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [scriptblock]$ScriptBlock, [int]$RetryCount = $script:Config.RetryAttempts, [int]$RetryDelaySeconds = $script:Config.RetryDelaySeconds ) $attempt = 1 do { try { return & $ScriptBlock } catch { if ($attempt -eq $RetryCount) { throw } Write-Log "Attempt $attempt failed. Retrying in $RetryDelaySeconds seconds..." -Level Warning Start-Sleep -Seconds $RetryDelaySeconds $attempt++ } } while ($attempt -le $RetryCount) } |