如何执行优雅的关机(Java)?
我理解,优雅的关闭会在拒绝新请求的同时完成预先存在的请求如何执行优雅的关机(Java)?,java,tomcat,application-shutdown,Java,Tomcat,Application Shutdown,我理解,优雅的关闭会在拒绝新请求的同时完成预先存在的请求 我将如何对运行在ApacheTomcat实例上的Java应用程序执行优雅的关闭?不确定我是否需要扩展当前的应用程序,或者它是否是一个简单的终端命令。我希望您指的是在Tomcat上运行的Web应用程序 您可以在web.xml中定义侦听器: <listener> <listener-class> your.project.ContextListener </listener-c
我将如何对运行在ApacheTomcat实例上的Java应用程序执行优雅的关闭?不确定我是否需要扩展当前的应用程序,或者它是否是一个简单的终端命令。我希望您指的是在Tomcat上运行的Web应用程序 您可以在web.xml中定义侦听器:
<listener>
<listener-class>
your.project.ContextListener
</listener-class>
</listener>
当Tomcat正在关闭或在Tomcat manager中停止webapp时,会发送contextDestroyed事件,您的侦听器可以执行必要的内务管理。通常,它涉及停止后台线程(如计划任务)、保存缓存内容、关闭资源池等)。但这并不包括OPs对正常关闭的解释,即完成运行的请求但拒绝任何新请求。
import javax.servlet.ServletContextListener;
public class ContextListener implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent sce) {
cleanYourResources();
}
}