Как отключить оповещения об исключениях

Предположим, у вас есть .NET-система, которой необходимо отправлять уведомления по электронной почте системному администратору при возникновении ошибки.Пример:Этот блок кода вызывается разными пользователями сотни раз в секунду.Теперь допустим, что базовый API /сервис /база данных не работает.Этот код будет терпеть неудачу много-много раз .Бедный администратор проснется с несколькими миллионами электронных писем в своем почтовом ящике, а разработчик получит грубый телефонный звонок, не то чтобы такой инцидент (кашель) обязательно произошел сегодня утром.Совершенно очевидно, что этот дизайн плохо масштабируется.Первые несколько решений, которые приходят на ум, в некотором роде ошибочны:Регистрируйте ошибки в базе данных, а затем выставляйте большое количество ошибок с помощью проверки работоспособности HTTP для внешней службы мониторинга, такой как Pingdom .(Пока что мой любимый кандидат. Но что, если база данных выйдет из строя?)Имейте статический кеш, который отслеживает недавние исключения, а система предупреждений всегда сначала проверяет наличие дубликатов.(Кажется излишне сложным, и, во-вторых, многие сообщения об ошибках отличаются очень незначительно - например, если в ошибке есть отметка времени, это бесполезно.)Программно переводить нашу систему в автономный режим после определенных ошибок или на основе постоянного мониторинга критических зависимостей (рискованно! Что делать, если есть временное ложное срабатывание?)Просто не предупреждайте об этих ошибках и полагайтесь на другую часть системы, которая будет отслеживать и сообщать о зависимостях.(Не учитывает «неожиданные» ошибки, которых мы не ожидали.)Это похоже на проблему, которую нужно решить, и мы делаем это глупо.Предложения приветствуются, даже если они включают совершенно другую стратегию управления исключениями!
7 голосов | спросил realworldcoder 28 +04002010-10-28T19:25:44+04:00312010bEurope/MoscowThu, 28 Oct 2010 19:25:44 +0400 2010, 19:25:44

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132