using Polly.Contrib.WaitAndRetry;
using System.Threading.Tasks;
public static async Task Main()
var retryWithBackoff = Policy
.WaitAndRetryAsync(Backoff.DecorrelatedJitterBackoffV2(TimeSpan.FromMilliseconds(500), 5));
var retryForeverWithAnHourDelay = Policy
.WaitAndRetryForeverAsync(_ => TimeSpan.FromSeconds(1));
var combinedRetryPolicy = Policy.WrapAsync(retryForeverWithAnHourDelay, retryWithBackoff);
var result = await combinedRetryPolicy.ExecuteAsync(() =>
Console.WriteLine("Called");
return Task.FromException<Exception>(new Exception("Failed"));