Особенности проектирования для высоконадежного обслуживания - PullRequest
1 голос
/ 06 апреля 2010

Я пишу службу ac # windows, которая будет выполнять некоторую фоновую обработку - в основном это потребитель рабочей очереди.

Он не должен выходить из строя (прекратить обработку новых предметов), и если он все-таки выйдет из строя, я должен быть уведомлен.

Каковы некоторые рекомендации по проектированию и соображения для а) обеспечения того, чтобы такиеуслуга настолько надежна, насколько это возможно, и б) отправить уведомление, если что-то пойдет не так?Я рассмотрел, например, создание потока-наблюдателя, единственная задача которого - убедиться, что рабочий поток все еще обрабатывает задания.

Ответы [ 2 ]

1 голос
/ 06 апреля 2010

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

Тестирование

Прежде всего, процесс тестирования, который вы проходите, должен быть очень надежным, проверять эти «неожиданные» ситуации, потерю сетевого подключения и т. Д. Убедитесь, что вы тестируете их,и видеть, что происходит.Уведомление о сбое может быть немного «смешанным».Например, вы не можете написать себе по электронной почте, если у вас нет доступных сетевых подключений.

Правильный дизайн кода

В дополнение к настройке допустимых тестовых сценариевУбедитесь, что ваш код является пуленепробиваемым, насколько это возможно, поскольку вы создаете службу Windows, убедитесь, что вы регистрируете, регистрируете и обрабатываете все возможные ошибки, как если бы ошибка возникла в ОС, ваша служба будетперейти вниз.

Мониторинг

Подумайте о включении мониторинга, в моей повседневной работе используется два типа мониторинга: в некоторых случаях в журнал событий Windows сообщается об ошибкахи Microsoft MOM используется для уведомления нас о любых / всех проблемах, происходящих в среде.Второй процесс, который мы используем, - это второе запланированное задание, которое каждые X минут проверяет, что критическое задание находится в состоянии «Запущено». Если оно не находится в запущенном состоянии, оно перезапускает его.Не элегантно, но работает.

0 голосов
/ 06 апреля 2010

Я думаю, что MOM и / или Solar Winds или какое-либо другое приложение мониторинга, которое может использовать ваш системный администратор для мониторинга машины, на которой развернута служба, и выполнения надлежащих действий (отправка электронной почты, звонки на телефоны:)

...