我对Tomcat不太熟悉,在我看来,它基本上是抽象为cgi服务器,可以在两次调用之间保存JVM -尽管我知道它可以做得多。
我正在寻找一种在Tomcat服务器启动时启动 后台 线程的方法,该方法会定期更新服务器上下文(在我的特殊情况下,这是一个侦听其他服务的心跳并更新可用性信息的线程,但是可以想象得到有多种用途)。
有标准的方法吗?上下文的启动和更新/查询?
指向相关文档和/或代码示例的任何指针将不胜感激。
如果要在部署WAR时启动线程,则可以在web.xml中定义上下文侦听器:
<web-app> <listener> <listener-class>com.mypackage.MyServletContextListener</listener-class> </listener> </web-app>
然后实现该类,例如:
public class MyServletContextListener implements ServletContextListener { private MyThreadClass myThread = null; public void contextInitialized(ServletContextEvent sce) { if ((myThread == null) || (!myThread.isAlive())) { myThread = new MyThreadClass(); myThread.start(); } } public void contextDestroyed(ServletContextEvent sce){ try { myThread.doShutdown(); myThread.interrupt(); } catch (Exception ex) { } } }