SpringBoot实现http请求的异步长轮询【2】— AsyncHandlerInterceptor方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot实现http请求的异步长轮询【2】— AsyncHandlerInterceptor方式相关的知识,希望对你有一定的参考价值。

参考技术A

客户端调用服务端接口,服务端这个接口比较耗时。为了优化服务端的性能。

服务端收到servlet请求后,释放掉servlet占用的线程资源。开启一个异步线程去处理耗时的操作。当耗时操作处理完成后,将结果返回给客户端。

注意:在此期间,客户端和服务端的http链接并不会断开,客户端依旧苦苦等待响应数据;

可以使用接口AsyncHandlerInterceptor实现来拦截涉及异步处理的请求,而不是使用HandlerInterceptor。

HandlerInterceptorAdapter适配器,适配了AsyncHandlerInterceptor和HandlerInterceptor,推荐使用这个来实现。

上文说到,释放Servlet线程,交由指定的线程池去处理,那么如何去定义指定的线程池?

注意:方法返回的是Callable。

执行效果如下图所示:

SpringMVC-使用AsyncHandlerInterceptor拦截异步处理请求

以上是关于SpringBoot实现http请求的异步长轮询【2】— AsyncHandlerInterceptor方式的主要内容,如果未能解决你的问题,请参考以下文章

DeferredResult 实现长轮询

基于HTTP的长轮询简单实现

使用 ReactPHP 异步的长轮询电报

DeferredResult 如何实现长轮询?

Gevent的长轮询实现方法详解

gevent中如何实现长轮询