如何在GAE前端实例终止之前运行一段代码?
我正在考虑在Servlet.destroy()中运行代码,但这实际上是在实例被拉下线之前调用的吗?
答案 0 :(得分:2)
您可以使用LifecycleManager类为Java运行时注册关闭挂钩:
LifecycleManager.getInstance().setShutdownHook( new ShutdownHook()
{
@Override
public void shutdown()
{
// do your stuff here
}
} );
您可以使用ServletContextListener为servlet添加启动挂钩,并将上面的代码放在contextInitialized(ServletContextEvent event)
方法中。
从上面链接中有关ServerContextListener的文档中可以看出,当实例关闭时,AppEngine不会调用contextDestroyed(ServletContextEvent event)
方法。