diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs index c402a5015..574610dec 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs @@ -2,6 +2,7 @@ using FilterLists.SharedKernel.Apis.Clients.Options; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Polly; using Refit; namespace FilterLists.SharedKernel.Apis.Clients @@ -10,14 +11,18 @@ public static class ConfigurationExtensions { public static void AddApiClients(this IServiceCollection services, IConfiguration configuration) { - // TODO: add Polly for resiliency // TODO: use SystemTextJsonContentSerializer() once less feature-limited services.AddRefitClient() .ConfigureHttpClient(c => { var host = configuration.GetSection(ApiOptions.Key).Get().DirectoryHost; c.BaseAddress = new UriBuilder("http", host).Uri; - }); + }) + .AddTransientHttpErrorPolicy(b => + b.WaitAndRetryAsync(new[] + { + TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(10) + })); } } } diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj index f959b1574..f421b1738 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj @@ -21,6 +21,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive +