Exemplo n.º 1
0
 public RetryPolicyHandler(LoggingSettings loggingSettings, RetryPolicySettings settings, HttpMessageHandler inner) 
     : base(inner)
 {
     _loggingSettings = loggingSettings;
     _settings = settings;
     _retryPolicy = Policy
     .Handle<TransientHttpRequestException>()
     .WaitAndRetryAsync(settings.RetryPolicyIntervals);
 }
        public CircuitBreakerPolicyHandler(LoggingSettings loggingSettings, CircuitBreakerSettings settings, HttpMessageHandler inner)
            : base(inner)
        {
            _loggingSettings = loggingSettings;
            _circuitBreakerEnabled = settings.CircuitBreakerEnabled;

            _circuitBreaker = Policy
            .Handle<Exception>()
            .CircuitBreakerAsync(settings.ExceptionAllowedBeforeCircuitBroken, TimeSpan.FromMilliseconds(settings.DurationOfCircuitBreakMiliseconds));
        }
Exemplo n.º 3
0
        public DefaultRefitSettings()
        {
            LoggingSettings = new LoggingSettings();
            CircuitBreakerSettings = new CircuitBreakerSettings();
            RetryPolicySettings = new RetryPolicySettings();

            HttpMessageHandlerFactory = () =>
            {
                var handlers = new LoggingHandler(
                    LoggingSettings,
                    new CircuitBreakerPolicyHandler(LoggingSettings, CircuitBreakerSettings,
                        new RetryPolicyHandler(LoggingSettings, RetryPolicySettings,
                            new NoOpHandler())));

                return handlers;
            };
        }
Exemplo n.º 4
0
 public LoggingHandler(LoggingSettings loggingSettings,
     HttpMessageHandler inner)
     : base(inner)
 {
     _loggingSettings = loggingSettings;
 }