Files

395 B
Executable File

function Invoke-Retry { param( [scriptblock]$Action, [int]$Retries = 3, [int]$DelaySeconds = 5, [string]$Name = "Operation" )

for ($i = 1; $i -le $Retries; $i++) {
    try {
        return & $Action
    }
    catch {
        Write-Log "$Name failed ($i/$Retries): $($_.Exception.Message)" -Level WARN

        if ($i -eq $Retries) { throw }

        Start-Sleep $DelaySeconds
    }
}

}