Exemplo n.º 1
0
 public DataService(ILogger <DataService> logger, TodoRepository todoRepository, RetryPolicyHandler retryPolicyHandler, ResilienceSettings resilienceSettings)
 {
     _logger             = logger;
     _todoRepository     = todoRepository;
     _retryPolicyHandler = retryPolicyHandler;
     _resilienceSettings = resilienceSettings;
 }
Exemplo n.º 2
0
        public static async Task <IPOS> CreatePosAsync(GrpcPosOptions options)
        {
            var connectionhandler = new GrpcProxyConnectionHandler <IPOS>(options);

            if (options.RetryPolicyOptions != null)
            {
                var retryPolicyHelper = new RetryPolicyHandler <IPOS>(options.RetryPolicyOptions, connectionhandler);
                return(new PosRetryProxyClient(retryPolicyHelper));
            }
            else
            {
                return(await connectionhandler.GetProxyAsync());
            }
        }
Exemplo n.º 3
0
 public RetryPolicyHandlerUnitTest()
 {
     _handler            = new RetryPolicyHandler(MaximumRetries);
     _httpRequest        = new HttpRequestMessage(HttpMethod.Get, "/test");
     _retryPolicyHandler = new Mock <DelegatingHandler>();
     _handler            = new RetryPolicyHandler(3)
     {
         InnerHandler = _retryPolicyHandler.Object
     };
     _httpClient = new HttpClient(_handler)
     {
         BaseAddress = new Uri("http://localhost")
     };
 }
Exemplo n.º 4
0
        private static IHttpClientBuilder SetupHandlersAndPolicies(this IHttpClientBuilder clientBuilder, PolicyConfiguration policyConfiguration)
        {
            clientBuilder
            //.ConfigurePrimaryHttpMessageHandler(x => new HttpClientHandler(x.GetRequiredService<ISOAPMessageLogger>()))
            .SetHandlerLifetime(policyConfiguration.HttpClientRenewalInterval)
            .AddPolicyHandler(
                RetryPolicyHandler.WaitAndRetry(policyConfiguration.HttpRetry)
                )
            .AddPolicyHandler(
                CircuitBreakerPolicyHandler.Break(policyConfiguration.HttpCircuitBreaker)
                );

            return(clientBuilder);
        }
        public static async Task <IDESSCD> CreateSSCDAsync(SoapClientOptions options)
        {
            var connectionhandler = new SoapProxyConnectionHandler <IDESSCD>(options);

            if (options.RetryPolicyOptions != null)
            {
                var retryPolicyHelper = new RetryPolicyHandler <IDESSCD>(options.RetryPolicyOptions, connectionhandler);
                return(new DESSCDRetryProxyClient(retryPolicyHelper));
            }
            else
            {
                return(await connectionhandler.GetProxyAsync());
            }
        }
        public static async Task <IPOS> CreatePosAsync(HttpPosClientOptions options)
        {
            var connectionhandler = new HttpProxyConnectionHandler <IPOS>(new AsyncJournalPOSHelper(new HttpPos(options)));

            if (options.RetryPolicyOptions != null)
            {
                var retryPolicyHelper = new RetryPolicyHandler <IPOS>(options.RetryPolicyOptions, connectionhandler);
                return(new PosRetryProxyClient(retryPolicyHelper));
            }
            else
            {
                return(await connectionhandler.GetProxyAsync());
            }
        }
Exemplo n.º 7
0
        public MongoGeneric(string mongoUrl, string databaseName, string collectionName)
        {
            var settings = MongoClientSettings.FromUrl(MongoUrl.Create(mongoUrl));

            settings.MaxConnectionIdleTime  = TimeSpan.FromMinutes(1);
            settings.SocketTimeout          = TimeSpan.FromMinutes(1);
            settings.ApplicationName        = ClientConnectionAppName;
            settings.ServerSelectionTimeout = TimeSpan.FromSeconds(3);
            _client       = new MongoClient(settings);
            database      = _client.GetDatabase(databaseName);
            collection    = database.GetCollection <T>(collectionName);
            _retryHandler = new RetryPolicyHandler <Exception>(a =>
                                                               a.Message.Contains("ExtendedSocketException") ||
                                                               a.Message.Contains("An exception occurred while opening a connection to the server.")
                                                               );
        }
Exemplo n.º 8
0
        private static HttpClient CreateHttpClient(Uri serviceUri, bool useRetries)
        {
            HttpMessageHandler handler = new HttpClientHandler
            {
                Proxy = null // SEE https://stackoverflow.com/questions/2519655/httpwebrequest-is-extremely-slow/3603413#3603413
            };               // Default message handler

            if (useRetries)
            {
                var retryPolicy = new RsdnClientRetryPolicy();
                handler = new RetryPolicyHandler(retryPolicy, handler);
            }

            return(new HttpClient(handler)
            {
                BaseAddress = serviceUri,
                DefaultRequestHeaders =
                {
                    UserAgent = { ClientInfo.DefaultUserAgentHeader }
                }
            });
        }