![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать что система не висит. [D7, 2000, XP, 2003]
KyRo © (2006-11-28 16:37:00)Подскажите . У меня есть клиент на удаленном компьютере и мне надо знать что компьютер не висит и если он не висит то проверить что не висит определенный процес. Можно ли это сделать и если да то как ?
Leonid Troyanovsky (2006-11-28 18:59:00) [1]
> KyRo (28.11.06 17:34) [5]
> Или расскажите по подробней как это сделать.
Видишь ли, KyRo..
Идеология клиент-серверных приложений обычно
строится на предположении о том, что ресурсы
сервера более ценны, нежели ресурсы клиента.
Т.е., например, серверу не к лицу посылать
запросы клиенту (в особенности - синхронные).
Значит, если клиент заинтересован в том, скажем, чтобы
его считали живым, то он и должен об этом озаботится.
Хотя бы, по тому же таймеру.
Ну, а сервер, собирая статистику о клиенте за опред.
интервал, решает, считать клиента живым, или
освободить мобилизованные для его обслуживания
ресурсы в пользу других клиентов.
(Понятно, что такой сбор сведений также не бесплатен,
поэтому, окончательный выбор зависит и от многих
других факторов: стоимости создания контекста для
клиента, интенсивности обслуживания, степени
постоянства (запросов) клиентов и т.п. и т.д.).
Ну, а осмысленные решения подобных проблем, включая
поиск оптимальных стратегий, могут быть, AFAIK, получены
с помощью весьма развитого математического аппарата
теории массового обслуживания.
--
Regards, LVT.
KyRo (2006-11-28 17:34:00) [2]
> Barloggg (28.11.06 17:00) [4]
> а винда постоянно посылает сообщения которые приходят и
> обрабатываются в событии onIdle у объекта application.
А как мне это сделать для чужого процесса ? Через АПИ ?
Если да подскажите какой функцией мне это сделать ?
Или расскажите по подробней как это сделать.
Barloggg (2006-11-28 17:00:00) [3]а винда постоянно посылает сообщения которые приходят и обрабатываются в событии onIdle у объекта application.
KyRo (2006-11-28 16:59:00) [4]
> DrPass © (28.11.06 16:40) [1]
> Разница между "висит" и "выключен" чисто визуальная, для
> программы это одно и то же. А для клиент-серверных приложений
> сюда еще добавь "не в сети"
Мне надо что бы клиент собрал нужную информацию и переслал на сервер.
Если он не откликается на запрос тогда 100% что то не в порядке и я ставлю соответственный статус.
А вот если клиент откликается (то есть запущен,работает и есть сеть). Как узнать работает определенный процесс или висит?.
Виндовс ведь пишет статус в диспетчере (НЕ ОТвечает) !!
Barloggg (2006-11-28 16:59:00) [5]ну можно забацать рапорт по таймеру "я жив".
что-то вроде сигнала power_good для серверного железа с возможностью горячего отсоединения.
а вообще просто посылай запрос на тему "алле, ты живой", если есть ответ через нужное время, значит да, живой.
DrPass (2006-11-28 16:40:00) [6]Разница между "висит" и "выключен" чисто визуальная, для программы это одно и то же. А для клиент-серверных приложений сюда еще добавь "не в сети"