public async Task Failure() { var fatorySettings = new TimeoutRetryPolicySettings { PerRetryTimeout = "00:00:20", TotalTimeout = "00:01:00" }; var factory = new TimeoutRetryPolicyFactory(fatorySettings); var policy = factory.Create(); Func <Task> executeAction = async() => await policy.ExecuteAsync(async() => { Trace.TraceInformation("Sending..."); var badUrl = "http://10.51.11.50:15672/"; var request = WebRequest.Create(badUrl); try { await request.GetResponseAsync(); } catch (Exception e) { request.Abort(); throw; } }); executeAction.Should().Throw <Exception>(); }
public TimeoutRetryPolicyFactory(TimeoutRetryPolicySettings policySettings) { RetryCount = policySettings.RetryCount ?? 5; PerRetryTimeout = TimeSpan.TryParse(policySettings.PerRetryTimeout, out var perRetryTimeout) ? perRetryTimeout : TimeSpan.FromSeconds(5); RetryWaitTime = TimeSpan.TryParse(policySettings.RetryWaitTime, out var retryWaitTime) ? retryWaitTime : TimeSpan.FromSeconds(2); TotalTimeout = TimeSpan.TryParse(policySettings.TotalTimeout, out var totalTimeout) ? totalTimeout : TimeSpan.FromSeconds(10); }