У меня возник вопрос о том, как лучше всего проверить, работает ли служба.Лучший способ проверить, виновата ли служба
Сначала немного разъяснений. У меня есть приложение C#, которое может быть запущено из командной строки или может быть запущено как служба Windows. Функция службы заключается в проверке изменений в удаленном стороннем источнике данных и обработке этих изменений, прежде чем добавлять их в наше собственное локальное хранилище данных.
Я хочу, чтобы определить, когда служба прекратила работу по какой-либо причине, и уведомить кого-нибудь, когда это произойдет как можно более автоматически. Это должно произойти независимо от того, выполняется ли служба как служба Windows или из командной строки.
Я уже рассматривал возможность мониторинга локального хранилища данных для внесения изменений и уведомления о том, что изменения не были выполнены в течение установленного промежутка времени, однако это оказалось немного непоследовательным, поскольку частота изменений третьей стороны источник данных является переменным, а это означает, что длительное отсутствие изменений необязательно указывает на то, что служба перестала работать, возможно, что нет никаких изменений!
Есть ли какие-либо предложения о том, как я могу отслеживать это? У кого-нибудь есть опыт работы с чем-то похожим?
Спасибо, M
Edit 1 Просто чтобы дать общее представление о том, как работает служба: Служба третья сторона вызывает события, когда новые/обновленные данные доступны так что моя служба сидит и ждет этих событий для повышения и обработки данных, возвращаемых в поднятом событии. Поэтому поэтому сложно определить, когда «нет изменений», а не «сбой службы».
Edit 2 Я думаю, что нужно быть немного понятнее: Основной причиной этого мониторинга является уведомить пользователя о потенциальной проблеме либо со службой или с подключением к услуге 3 партии. Сама услуга является однопоточной и имеет правильную обработку исключений и протоколирование. Скорее всего, эта служба будет запускаться на сервере где-то, если есть какие-либо проблемы с сервисом, и она перестает обновлять наше локальное хранилище данных по любой причине, которую служба должна уведомить кого-то.
Есть ли у вашего сервиса какой-то цикл опроса? –
Не могли бы вы показать нам псевдоописание того, что на самом деле делает ваша служба? Мы могли бы помочь определить место, где можно расположить какую-то форму сердцебиения. – KingCronus