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); })); }
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); })); }
public static IHttpClientBuilder AddCircuitBreakerHandler(this IHttpClientBuilder httpClientBuilder, ILogger logger, ICircuitBreakerPolicyConfig circuitBreakerPolicyConfig) { return(httpClientBuilder.AddPolicyHandler(HttpCircuitBreakerPolicies.GetHttpCircuitBreakerPolicy(logger, circuitBreakerPolicyConfig))); }