我想知道是否有一种方法可以在关闭过程中暂停http协议处理程序之前,向tomcat注册一个“关闭钩子”。
我有一个servlet,它将‘status’报告给负载平衡器,它设置为每5秒轮询一次,我的目的是添加一个关闭钩子,在更改有关应用程序的任何内容之前发生(包括事务管理器、spring、tomcat http协议处理程序等)。
其目标只是让servlet返回“关闭”,然后暂停5+秒,以便为负载平衡器提供足够的时间来实现即将发生的事情,然后让正常的关闭过程发生。
我尝试过ServletContextListener,似乎tomcat实际上在http协议侦听器到达之前暂停了它,这意味着我已经太晚了,无法生效。
干杯
发布于 2013-11-20 23:38:55
在对tomcat的放大过程进行反复观察之后,似乎没有办法通过关闭挂钩来实现这一点。作为这个问题的解决方案,我决定创建一个从我们的部署脚本中调用的webservice,它本质上告诉应用程序即将关闭,这将触发servlet向负载平衡器报告它是不可用的。部署脚本在继续关闭应用程序之前等待x时间,为整个过程留下足够的时间。
考虑到我更希望它成为标准关闭机制的一部分,这是稍微复杂和不雅观的,但这确实有效。
https://stackoverflow.com/questions/20058779
复制相似问题