SpringBoot实现http请求的异步长轮询【2】— AsyncHandlerInterceptor方式
客户端调用服务端接口,服务端这个接口比较耗时。为了优化服务端的性能。
服务端收到servlet请求后,释放掉servlet占用罩喊的线程资源。开启一个异步线程去处理耗时的操作。当耗时操作处理完成后,将结果返回给客户端。
注意:在此期间,客户端和服务端的http链接并不会断开,客户端依旧苦苦等待响应数据;
可以使用接口AsyncHandlerInterceptor实现来拦截涉及异步处答猛理的请求,而不是使用HandlerInterceptor。
HandlerInterceptorAdapter适配器,适配了AsyncHandlerInterceptor和HandlerInterceptor,推荐使用这个来实现。
上文说到,释放Servlet线程,交由指定的线程池去处理,那清闷桥么如何去定义指定的线程池?
注意:方法返回的是Callable。
执行效果如下图所示:
SpringMVC-使用AsyncHandlerInterceptor拦截异步处理请求