2014-09-30 3 views
0

У меня есть веб-приложение, содержащее процесс опроса (бесконечный цикл while), который запускается сервлетами при запуске службы Tomcat.Java Servlet для запуска и мониторинга процесса опроса

<load-on-startup>0</load-on-startup> 

Который работает нормально.

Если бы это был процесс Unix, то я мог бы проверить его в командной строке с помощью:

ps -ef | grep <myProcess> 

Есть ли что-нибудь (простой), который может быть использован в Servlet, чтобы следить за состоянием моего процесса опроса?

EDIT

Чтобы уточнить, все, что я действительно хочу видеть, что процесс все еще работает и не остановился.

+0

Вы можете выполнить команду '" ps -ef | grep "из Java тоже. – icza

+1

Сделайте ваш сервлет 'doGet' методом, чтобы вернуть некоторые статистические данные о вашем рабочем потоке. Вы можете проверить статус живых потоков; или ваш поток может обновлять статистику при каждом пробуждении. –

+0

Спасибо, гироскоп. Я сам подумал об этом и, вероятно, пойдет по этому пути. – thonnor

ответ

1

IMHO, вы не должны использовать сервлет в этом случае, но ServletContextListener. В своем contextInitialized(ServletContextEvent sce), слушатель должен:

  • запустить поток службы опроса
  • положить в ServletContext атрибут объекта, содержащее состояние (дату последней операции, количество операций в ...) от избирательного потока (а имеющий mechanizme синхронизации)

Затем, слушатель может остановить избирательную нить в contextDestroyed(ServletContextEvent sce), и любой сервлет (включая JSPs) могла бы получить состояние опроса нити из ServletContext.

+0

Спасибо Serge, Я собираюсь больше посмотреть на это и посмотреть, что я могу узнать/придумать. У вас есть пример или ссылка, где есть один? – thonnor

+0

Upadate - сегодня я завершил мой код WebListener (хорошо начал и получил его работу). Спасибо за вашу помощь. Серж – thonnor

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