public DataService(ILogger <DataService> logger, TodoRepository todoRepository, RetryPolicyHandler retryPolicyHandler, ResilienceSettings resilienceSettings) { _logger = logger; _todoRepository = todoRepository; _retryPolicyHandler = retryPolicyHandler; _resilienceSettings = resilienceSettings; }
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()); } }
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") }; }
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()); } }
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.") ); }
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 } } }); }