我有一个Web应用程序,它包含一个轮询进程(无限while循环),该进程由Servlet在Tomcat服务启动时启动。
<load-on-startup>0</load-on-startup>
这很好用。
如果这是一个Unix进程,那么我可以在命令行上使用进行检查
ps -ef | grep <myProcess>
Servlet中有什么(简单的)东西可以用来监视我的轮询进程的状态吗?
编辑
澄清一下,我真正想看到的是,这个过程仍然在运行,没有停止。
IMHO,您不应该为该用例使用Servlet,而应该使用Servlet上下文侦听器。在其contextInitialized(ServletContextEvent sce)
中,侦听器应该:
- 启动轮询服务线程
- 在ServletContext属性中放入一个对象,该对象包含来自轮询线程的状态(上次操作日期、每次操作的次数…)(并具有同步机制)
然后,侦听器可以在其contextDestroyed(ServletContextEvent sce)
中停止轮询线程,并且任何servlet(包括JSP)都可以从servlet上下文中获取轮询线程的状态。