|
|
Опубликовано 28.05.2019 23:54:53
|
|
|
|

Последний раз этот пост был отредактирован Kongcida 29.05.2019, 11:16
предисловие В проекте возникают проблемы с его работой по неконтролируемым причинам. Например, сбой сервера, сбой сервиса, сбой сети и т.д. Столкнувшись с ошибками, которые можно повторить, мы можем использовать Polly —— . .NET Эластичные и временные библиотеки обработки неисправностей. Официальный адрес сайта проекта (Вход по гиперссылке виден.)。 Сегодня в этой статье будет задокументирована неудачная стратегия повторных попыток Полли.
Окружающая среда и инструменты
>VS 2017
>Система Windows 10
СМС
1: Создать новое консольное приложение.
2: Цитата Полли. Доступно для скачивания в пакете NuGet
3: Вставить код
4: F6 генерирует. Затем найдите сгенерированный файл .exe в папке отладки — > дважды кликнуть, чтобы запустить.
Вы можете увидеть сообщение вывода: Перепробочено три раза.
Когда F5 отладывает, видно, что этот метод был выполнен три раза.
Стратегия повторного прохождения Полли подробно объясняется
1: Тип исключения
В этом коде :handle содержит тип исключения, подлежащее повторному рассмотрению. То есть, когда выполненный код создаёт конкретное исключение, выполняется функция повторного использования. В противном случае повторная попытка не проводится. Потому что некоторые исключения не требуют повторной попытки.
Конечно, здесь можно заполнить ряд конкретных типов исключений для повторной попытки.
Исключение DivideByZeroException здесь представляет собой исключение, которое пытается делить на ноль. SqlException указывает на исключение, которое возникает, когда SQL Server возвращает ошибку или предупреждение. Например, сбой подключения к базе данных, ошибка при выполнении SQL и т.д. SmtpException указывает на исключение, вызванное почтовой службой. Например, отправка не удалась, сетевая связь не получилась, а информация в электронной почте была ненормальной.
Для конкретных типов исключений, пожалуйста, обратитесь к официальной документации Microsoft:
2: Тип повторного прохождения
1) Первый тип повторных попыток — это прямое заданное количество попыток. Следующий код повторяется всего три раза.
Мы можем вызвать соответствующие действия, выполненные при каждом повторном прохождении. Следующий код — ещё одна комиссия позже. При повторной попытке печатаются количество повторных попыток и причина исключения.
Мы также можем продолжать повторные попытки кода, пока он не получится.
2) Второй тип повторной попытки — это повторная попытка с интервалами. Следующий код означает повторную попытку каждые 2, 7 или 10 секунд. Повторите 10 секунд. Если исполнение не увенчается успехом, прекратите повторную попытку.
Мы также можем попробовать повторить с интервалами, пока повторная попытка не будет успешной. Для этого требуется вычисление функции.
Приведённый выше код относится к повторной попытке по мощности косвенного 2. Например, если исполнение не удаётся, первый раз повторяется с интервалом в 2 секунды, второй — с интервалом в 4 секунды, а третий — с интервалом в 8 секунд......... И так далее. Пока казнь не будет успешной.
Эпилог
Примечание: типы исключений в вышеуказанном кодовом дескрипте должны быть заполнены в соответствии с реальной ситуацией вашего проекта. Не все исключения требуют повторной попытки.
Тип исключения является базовым классом для всех исключений. Лучше не заполнять это в ручке, иначе это приведёт к очень серьёзным последствиям.
|
Предыдущий:. Возвратное значение IPN при интернет-интеграции PayPal всегда было НЕДЕЙСТВИТЕЛЬНЫМСледующий:C# Использование ключевых слов дохода
|