Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 22130|Ответ: 3

[Кадр] . Устойчивость .NET и стратегия повторных попыток Polly при обработке неудач

[Скопировать ссылку]
Опубликовано 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# Использование ключевых слов дохода
Опубликовано 29.05.2019 9:17:54 |
Я сам реализовал механизм повторных попыток в AOP, и в итоге обнаружил, что библиотека Polly может удовлетворить мои потребности, но моя функция уже реализована, и я имею в виду стороннюю библиотеку, в которой может быть ненужный код, который не может оптимизировать мою систему, поэтому пока не полезен.

Прилагается мой код:



Когда будет время, я тоже посмотрю Полли
Опубликовано 29.05.2019 9:22:01 |
Сяо Чжаочжа Опубликовано 2019-5-29 09:17
Я сам реализовал механизм повторных попыток в AOP, и в итоге обнаружил, что библиотека Полли может удовлетворить мои потребности, но моя функция реализована, а введение ...

Нет ничего плохого в том, чтобы справляться с такими мелкими делами самостоятельно
И тебе стоит дождаться следующей попытки, чтобы попробовать снова
Опубликовано 29.05.2019 9:29:22 |
Ветры опубликованы 29.05.2019 09:22
Нет ничего плохого в том, чтобы справляться с такими мелкими делами самостоятельно
И стоит ли ждать следующего раза, чтобы попробовать снова?

Нет, исключение должно быть вызвано конфликтами параллелизма, вставки данных, обновления и удаления, но должен быть такой, который успешно выполнится, я ....... Пропущенный код завершает транзакцию, и исключение автоматически откатывается назад. При второй попытке конфликт исчез, поэтому я не установил время ожидания.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com