Watchdog programs in C#
От: SpeedLover Украина http://andreykuzmenko.com
Дата: 11.10.06 05:40
Оценка:
Есть два приложения: 1-Windows application, 2-Windows Service. Второе приложение стартует и останавливается с первого в новом процессе.
Задача: реализовать взаимный контроль двух программ. То есть, в случае подвисания Сервиса, Виндовое приложение его перегружает и наоборот Сервис перегружает Виндовое при зависании второго.
Вопрос: каким образом обнаружить, что какое-то приложение повисло?
http://andreykuzmenko.com
Re: Watchdog programs in C#
От: AlexDav Россия  
Дата: 11.10.06 07:10
Оценка:
Здравствуйте, SpeedLover, Вы писали:

SL>Есть два приложения: 1-Windows application, 2-Windows Service. Второе приложение стартует и останавливается с первого в новом процессе.

SL>Задача: реализовать взаимный контроль двух программ. То есть, в случае подвисания Сервиса, Виндовое приложение его перегружает и наоборот Сервис перегружает Виндовое при зависании второго.
SL>Вопрос: каким образом обнаружить, что какое-то приложение повисло?

Я думаю можно запрашивать друг у друга системное время — и сверять, если запрос вернул не верное — значит висит.
Re[2]: Watchdog programs in C#
От: Andrbig  
Дата: 11.10.06 07:53
Оценка:
Здравствуйте, AlexDav, Вы писали:

AD>Здравствуйте, SpeedLover, Вы писали:


SL>>Есть два приложения: 1-Windows application, 2-Windows Service. Второе приложение стартует и останавливается с первого в новом процессе.

SL>>Задача: реализовать взаимный контроль двух программ. То есть, в случае подвисания Сервиса, Виндовое приложение его перегружает и наоборот Сервис перегружает Виндовое при зависании второго.
SL>>Вопрос: каким образом обнаружить, что какое-то приложение повисло?

AD>Я думаю можно запрашивать друг у друга системное время — и сверять, если запрос вернул не верное — значит висит.


Если висит, то вообще не вернет.
Re[3]: Watchdog programs in C#
От: AlexDav Россия  
Дата: 11.10.06 08:13
Оценка:
Здравствуйте, Andrbig, Вы писали:

AD>>Я думаю можно запрашивать друг у друга системное время — и сверять, если запрос вернул не верное — значит висит.


A>Если висит, то вообще не вернет.


Это смотря как запрашивать, если ждать то конечно, а если к примеру как-нить асинхронно и через какое то время после запроса проверять ну например разделяемый ресурс, то вот и ответ — данные старые — висим.
Re[4]: Watchdog programs in C#
От: Pavel M. Россия  
Дата: 11.10.06 08:26
Оценка:
Здравствуйте, AlexDav, Вы писали:

AD>Здравствуйте, Andrbig, Вы писали:


AD>>>Я думаю можно запрашивать друг у друга системное время — и сверять, если запрос вернул не верное — значит висит.


A>>Если висит, то вообще не вернет.


AD>Это смотря как запрашивать, если ждать то конечно, а если к примеру как-нить асинхронно и через какое то время после запроса проверять ну например разделяемый ресурс, то вот и ответ — данные старые — висим.


Я тоже задумывался над этим. У сервиса есть возможность через ServiceController вызывать функцию с аргуметом типа int. Если она не возвращается через заданное время, можно делать рестарт.

msdn
--------------------------
less think — do more
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.