用于启动和监视轮询过程的 Java Servlet

标签 java tomcat servlets process-monitoring

我有一个 Web 应用程序,它包含一个在 Tomcat 服务启动时由 Servlet 启动的轮询过程(无限 while 循环)。

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

效果很好。

如果这是一个 Unix 进程,那么我可以使用以下命令在命令行上检查它:

ps -ef | grep <myProcess>

有什么(简单的)东西可以在 Servlet 中用来监视我的 Polling 进程的状态吗?

编辑

澄清一下,我真正想看到的是进程仍在运行并且没有停止。

最佳答案

恕我直言,您不应为该用例使用 Servlet,而应使用 ServletContextListener。在其 contextInitialized(ServletContextEvent sce) 中,监听器应该:

  • 启动轮询服务线程
  • 在 ServletContext 属性中放入一个对象,该对象包含来自轮询线程(并具有同步机制)的状态(上次操作日期、每个操作的数量...)

然后,监听器可以在其 contextDestroyed(ServletContextEvent sce) 中停止轮询线程,并且任何 servlet(包括 JSP)都可以从 ServletContext 获取轮询线程的状态。

关于用于启动和监视轮询过程的 Java Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116748/

相关文章:

java - 将 Tomcat 线程专用于 servlet

spring - 需要帮助解决 Spring 应用程序中使用 Tomcat 的异步支持启用问题

java - 变化扩展了 Activity 类别

java - java中矩阵/数组的乘法

java - 使用 SWIG 将 signed char * 类型的结构成员转换为 Java 中的字节数组 (byte[])

jsp - 防止用户在注销后看到以前访问过的安全页面

java - JMH - List#addAll 比 ArrayList#new 更快?

java - 是否可以在 tomcat 中的过滤器的 doFilter 函数中恢复 Referrer?

javascript - 从 iframe HTML 传递 token 的解决方案

java - Tomcat java.io.NotSerializableException 错误