public static CircuitBreakerPolicy <HttpResponseMessage> GetHttpCircuitBreakerPolicy(ILogger logger, ICircuitBreakerPolicyConfig circuitBreakerPolicyConfig)
 {
     return(HttpPolicyBuilders.GetDefaultBuilder()
            .CircuitBreakerAsync(circuitBreakerPolicyConfig.RetryCount + 1,
                                 TimeSpan.FromSeconds(circuitBreakerPolicyConfig.BreakDuration),
                                 (result, breakDuration) =>
     {
         OnHttpBreak(result, breakDuration, circuitBreakerPolicyConfig.RetryCount, logger);
     },
                                 () =>
     {
         OnHttpReset(logger);
     }));
 }
Exemplo n.º 2
0
 public static AsyncCircuitBreakerPolicy <HttpResponseMessage> GetHttpCircuitBreakerPolicy(ILogger logger, ICircuitBreakerPolicyConfig circuitBreakerPolicyConfig)
 {
     return(HttpPolicyExtensions.HandleTransientHttpError()
            .CircuitBreakerAsync(circuitBreakerPolicyConfig.RetryCount + 1,
                                 TimeSpan.FromSeconds(circuitBreakerPolicyConfig.BreakDuration),
                                 (result, breakDuration) =>
     {
         OnHttpBreak(result, breakDuration, circuitBreakerPolicyConfig.RetryCount, logger);
     },
                                 () =>
     {
         OnHttpReset(logger);
     }));
 }
Exemplo n.º 3
0
 public static IHttpClientBuilder AddCircuitBreakerHandler(this IHttpClientBuilder httpClientBuilder, ILogger logger, ICircuitBreakerPolicyConfig circuitBreakerPolicyConfig)
 {
     return(httpClientBuilder.AddPolicyHandler(HttpCircuitBreakerPolicies.GetHttpCircuitBreakerPolicy(logger, circuitBreakerPolicyConfig)));
 }