Move retry logic to the startup template.

Resolve 36090
pull/6112/head
maliming 5 years ago
parent 43b7474013
commit 2105f7a7de

@ -97,7 +97,7 @@ namespace Microsoft.Extensions.DependencyInjection
Check.NotNull(type, nameof(type));
Check.NotNullOrWhiteSpace(remoteServiceConfigurationName, nameof(remoteServiceConfigurationName));
AddHttpClientFactoryAndPolicy(services, remoteServiceConfigurationName);
AddHttpClientFactory(services, remoteServiceConfigurationName);
services.Configure<AbpHttpClientOptions>(options =>
{
@ -145,7 +145,7 @@ namespace Microsoft.Extensions.DependencyInjection
return services;
}
private static IServiceCollection AddHttpClientFactoryAndPolicy(
private static IServiceCollection AddHttpClientFactory(
[NotNull] this IServiceCollection services,
[NotNull] string remoteServiceConfigurationName = RemoteServiceConfigurationDictionary.DefaultName)
{

@ -15,7 +15,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="5.0.0-rc.2.*" />
<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0-rc.2.*" />
</ItemGroup>
<ItemGroup>

@ -1,11 +1,9 @@
using System;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Castle;
using Volo.Abp.Modularity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Threading;
using Volo.Abp.Validation;
using Polly;
using Volo.Abp.ExceptionHandling;
namespace Volo.Abp.Http.Client
@ -20,22 +18,6 @@ namespace Volo.Abp.Http.Client
)]
public class AbpHttpClientModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
PreConfigure<AbpHttpClientBuilderOptions>(options =>
{
options.ProxyClientBuildActions.Add((remoteServiceName, clientBuilder) =>
{
clientBuilder.AddTransientHttpErrorPolicy(policyBuilder =>
policyBuilder.WaitAndRetryAsync(
3,
i => TimeSpan.FromSeconds(Math.Pow(2, i))
)
);
});
});
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();

@ -23,6 +23,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="5.0.0-rc.2.*" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="5.0.0-rc.2.*" />
</ItemGroup>
</Project>

@ -1,4 +1,8 @@
using Volo.Abp.Http.Client.IdentityModel;
using System;
using Microsoft.Extensions.DependencyInjection;
using Polly;
using Volo.Abp.Http.Client;
using Volo.Abp.Http.Client.IdentityModel;
using Volo.Abp.Modularity;
namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp
@ -9,6 +13,17 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp
)]
public class MyProjectNameConsoleApiClientModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
PreConfigure<AbpHttpClientBuilderOptions>(options =>
{
options.ProxyClientBuildActions.Add((remoteServiceName, clientBuilder) =>
{
clientBuilder.AddTransientHttpErrorPolicy(
policyBuilder => policyBuilder.WaitAndRetryAsync(3, i => TimeSpan.FromSeconds(Math.Pow(2, i)))
);
});
});
}
}
}

Loading…
Cancel
Save