2010-04-06 6 views
1

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

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

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

ответ

1

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

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

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

Правильного код Design

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

Мониторинг

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

0

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

Смежные вопросы