Миграция из Полли на microsoft.extensions.http.Resilience - расширить supdhandleC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Миграция из Полли на microsoft.extensions.http.Resilience - расширить supdhandle

Сообщение Anonymous »

Я хочу перейти из Полли на microsoft.extensions.http.resilience addStandardresiliencehandler . Мой сокращенный код Полли является следующим: < /p>

Код: Выделить всё

services.AddHttpClient()
.AddPolicyHandler((_, _) =>
{
return HttpPolicyExtensions.HandleTransientHttpError()
.Or(exception => exception.StatusCode == HttpStatusCode.Conflict)
.WaitAndRetryAsync(3, sleepDurationProvider: i => TimeSpan.FromSeconds(i * 2));
});
Важнейшей частью здесь является httppolicyexextensions.handletransienthttperror (). или (exception => exception.statuscode == httpstatuscode.conflict) , где я хочу добавить ошибку, в который я хочу делать retry. Знайте, как преобразовать это в новую конфигурацию.
Насколько я понимаю, документы, которые я могу установить пользовательские опции. РЕРТРИ. Microsofts Реализация по умолчанию shophandle выглядит следующим образом:

Код: Выделить всё

public static readonly Func HandleOutcome = args => args.Outcome.Exception switch
{
OperationCanceledException => PredicateResult.False(),
Exception => PredicateResult.True(),
_ => PredicateResult.False()
};
< /code>
Моя текущая конфигурация выглядит следующим образом: < /p>
services.AddHttpClient()
.AddStandardResilienceHandler()
.Configure((options, _) =>
{
options.Retry.ShouldHandle = args =>
{
if (args.Outcome.Result?.StatusCode == HttpStatusCode.Conflict)
{
return PredicateResult.True();
}

return args.Outcome.Exception switch
{
OperationCanceledException => PredicateResult.False(),
not null => PredicateResult.True(),
_ => PredicateResult.False()
};
};
});
это эквивалентно начальной реализации Полли?

Подробнее здесь: https://stackoverflow.com/questions/787 ... shouldhand
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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