save progress
This commit is contained in:
@@ -66,7 +66,8 @@ public static class ServiceCollectionExtensions
|
||||
{
|
||||
var logger = provider.GetService<Microsoft.Extensions.Logging.ILogger<FileTokenCache>>();
|
||||
var options = provider.GetRequiredService<IOptionsMonitor<StellaOpsAuthClientOptions>>().CurrentValue;
|
||||
return new FileTokenCache(cacheDirectory, TimeProvider.System, options.ExpirationSkew, logger);
|
||||
var timeProvider = provider.GetService<TimeProvider>();
|
||||
return new FileTokenCache(cacheDirectory, timeProvider, options.ExpirationSkew, logger);
|
||||
}));
|
||||
|
||||
return services;
|
||||
@@ -95,13 +96,27 @@ public static class ServiceCollectionExtensions
|
||||
return builder;
|
||||
}
|
||||
|
||||
private static void ConfigureResilience(ResiliencePipelineBuilder<HttpResponseMessage> builder)
|
||||
private static void ConfigureResilience(ResiliencePipelineBuilder<HttpResponseMessage> builder, ResilienceHandlerContext context)
|
||||
{
|
||||
context.EnableReloads<StellaOpsAuthClientOptions>();
|
||||
|
||||
var options = context.GetOptions<StellaOpsAuthClientOptions>();
|
||||
if (!options.EnableRetries || options.NormalizedRetryDelays.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var delays = options.NormalizedRetryDelays;
|
||||
|
||||
builder.AddRetry(new HttpRetryStrategyOptions
|
||||
{
|
||||
MaxRetryAttempts = 3,
|
||||
Delay = TimeSpan.FromSeconds(1),
|
||||
BackoffType = DelayBackoffType.Exponential,
|
||||
MaxRetryAttempts = delays.Count,
|
||||
DelayGenerator = args =>
|
||||
{
|
||||
var index = args.AttemptNumber < delays.Count ? args.AttemptNumber : delays.Count - 1;
|
||||
return ValueTask.FromResult<TimeSpan?>(delays[index]);
|
||||
},
|
||||
BackoffType = DelayBackoffType.Constant,
|
||||
ShouldHandle = static args => ValueTask.FromResult(
|
||||
args.Outcome.Exception is not null ||
|
||||
args.Outcome.Result?.StatusCode is HttpStatusCode.RequestTimeout
|
||||
|
||||
Reference in New Issue
Block a user