gpt4 book ai didi

java - 关闭服务 - 结合 HandlerInterceptor 和 ServletContextListener

转载 作者:行者123 更新时间:2023-11-28 23:19:34 25 4
gpt4 key购买 nike

我目前正在努力正常关闭服务,为此我们需要在启动关闭之前检查所有当前请求是否已完成。这是我的关机处理程序:

@Service
public class ShutdownHandler implements HandlerInterceptor {
private int inflightRequests;
public void handleShutdown() {
if(inflightRequests == 0) {
doSomething();
}
}
@Override
public boolean preHandle(...) throws Exception {
inflightRequests++;
return false;
}

@Override
public void afterCompletion(...) {
inflightRequests--;
}
}

如何在上下文监听器的 contextDestroyed() 方法中添加对 handleShutdown() 的调用并将其添加为处理程序拦截器?有没有办法使用@Autowired?

最佳答案

将 InflightRequests 更改为静态,在 servlet 上下文被销毁时创建一个新的关闭处理程序并调用关闭方法。总的来说,有 2 个关闭处理程序的实例,但它似乎有效。

关于java - 关闭服务 - 结合 HandlerInterceptor 和 ServletContextListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45490742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com