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