Я пишу приложение, которое подключается к другой службе HTTP. Я хочу ограничить скорость моих исходящих запросов к этой внешней службе.
В идеале я хочу использовать стандартный обработчик устойчивости, как описано здесь, чтобы получить выгоду от настроены лучшие практики по умолчанию, когда дело доходит до устойчивости.
services.AddHttpClient()
.AddStandardResilienceHandler();
Однако, поскольку я знаю, что скорость внешней службы ограничена 120 запросами в секунду, я хочу применить аналогичную политику к своим исходящим вызовам.
Я могу добиться этого, используя отдельно настроенный 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
Как настроить ограничитель скорости StandardResilienceHandler ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение