From c673b85486a5fa535e1d3f24127b437542517926 Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Sun, 7 Jul 2019 15:17:05 -0500 Subject: [PATCH] support retry on transient/too many requests HTTP error closes #843 ref #836 --- .../Extensions/ServiceCollectionExtensions.cs | 6 +++++- src/FilterLists.Agent/FilterLists.Agent.csproj | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs index c1e268384..5f72129bd 100644 --- a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs +++ b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs @@ -1,4 +1,5 @@ using System; +using System.Net; using System.Net.Http; using CommandLine; using FilterLists.Agent.AppSettings; @@ -13,6 +14,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Octokit; +using Polly; using Credentials = Octokit.Credentials; using Repository = LibGit2Sharp.Repository; @@ -76,7 +78,9 @@ private static void AddAgentHttpClient(this IServiceCollection services) { b.PrimaryHandler = new HttpClientHandler {AllowAutoRedirect = false}; b.Build(); - }); + }).AddTransientHttpErrorPolicy(b => + b.OrResult(r => r.StatusCode == HttpStatusCode.TooManyRequests) + .WaitAndRetryAsync(5, i => i * TimeSpan.FromSeconds(3))); } private static void AddGitHubClient(this IServiceCollection services) diff --git a/src/FilterLists.Agent/FilterLists.Agent.csproj b/src/FilterLists.Agent/FilterLists.Agent.csproj index 091683d30..b66b0bdb2 100644 --- a/src/FilterLists.Agent/FilterLists.Agent.csproj +++ b/src/FilterLists.Agent/FilterLists.Agent.csproj @@ -40,12 +40,14 @@ + +