В идеале я хочу использовать стандартный обработчик устойчивости, как описано здесь, чтобы получить выгоду от настроены лучшие практики по умолчанию, когда дело доходит до устойчивости.
Код: Выделить всё
services.AddHttpClient()
.AddStandardResilienceHandler();
Я могу добиться этого, используя отдельно настроенный ResiliencePipeline (см. ниже), но я хочу объединить это с AddStandardResilienceHandler(). Есть ли способ добиться этого?
Код: Выделить всё
var pipeline = new ResiliencePipelineBuilder()
.AddRetry(new RetryStrategyOptions
{
ShouldHandle = new PredicateBuilder().Handle(),
Delay = TimeSpan.FromSeconds(1),
MaxRetryAttempts = 5,
BackoffType = DelayBackoffType.Exponential,
UseJitter = true
})
.AddRateLimiter(new FixedWindowRateLimiter(new FixedWindowRateLimiterOptions()
{
PermitLimit = 2,
Window = TimeSpan.FromSeconds(1)
}))
.Build();
Я опубликовал здесь минимальное решение для экспериментов с этой проблемой/решением.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ncehandler
Мобильная версия