示例#1
0
    public static IHttpClientBuilder UseRetryPolicy(this IHttpClientBuilder builder, int retries)
    {
        Random random = new Random();

        // Policy is:
        // Retries: 3
        // Timeout: 2^attempt seconds (2, 4, 8 seconds) + -100 to 100 ms jitter
        return(builder.UseRetryPolicy(retries, retryAttempt =>
                                      TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)) +
                                      TimeSpan.FromMilliseconds(random.Next(-100, 100))));
    }
示例#2
0
 /// <summary>Adds a retry policy with 3 retries. Also adds a timeout policy that waits for 10 minutes before it terminates a request.</summary>
 public static IHttpClientBuilder UseDefaultHttpPolicy(this IHttpClientBuilder builder)
 {
     return(builder.UseRetryPolicy(3).UseTimeoutPolicy(TimeSpan.FromMinutes(10)));
 }