提问人:Niels 提问时间:10/25/2023 更新时间:10/25/2023 访问量:13
在长时间轮询时 tomcat/jersey 关闭期间,ServletContextListener 钩子延迟了 7 秒,为什么?
During tomcat/jersey shutdown while long polling, the ServletContextListener hook is delayed by 7 seconds, why?
问:
我的设置是 Windows10 / eclipse / tomcat8 / jersey。 我有一个简单的后端,可以处理来自前端的一些ajax长轮询。
现在,如果没有前端运行,当我想让 tomcat 停止时,我会在 eclipse 的“服务器”面板中按“停止”。这起到了魔咒的作用,雄猫在一秒钟内就停止了。
但是,当我有一个当前正在执行长时间轮询的前端时,我按下“停止”,无论剩余的长轮询时间如何,总共需要大约 8 秒(我尝试了 10 秒和 15 秒)。
我想,也许我只需要在关机前立即中断长时间的轮询,所以我使用 @WebListener 安装了一个 ServletContextListener,我得到了 contextDestroyed 回调,但只需 7 秒后按下“停止”。这无济于事..
目前在 jersey 2.41 和 servlet-api 3.1.0 上。长轮询是使用 @Suspended AsyncResponse 实现的。
有没有更早到来的替代回调?我错过了什么吗? 任何帮助都表示赞赏。
答: 暂无答案
下一个:如何偶尔推送通知到移动应用程序?
评论