Как настроить ограничитель скорости StandardResilienceHandlerC#

Место общения программистов C#
Ответить
Anonymous
 Как настроить ограничитель скорости StandardResilienceHandler

Сообщение Anonymous »

Я пишу приложение, которое подключается к другой службе 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»