1. 首页
  2. 编程语言
  3. Java
  4. 基于springboot 长轮询的实现操作

基于springboot 长轮询的实现操作

上传者: 2021-11-20 23:16:30上传 PDF文件 95.76 KB 热度 25次

DeferredResult可以允许容器线程快速释放以便可以接受更多的请求提升吞吐量,让真正的业务逻辑在其他的工作线程中去完成。下面我们自己写一个简单的demo来演示这个过程springboot启动类:当请求超时的时候会产生AsyncRequestTimeoutException,我们定义一个全局异常捕获类:然后我们通过postman工具发送请求http://localhost:8080/watch/mynamespace,请求会挂起,60秒后,DeferredResult超时,客户端正常收到了304状态码,表明在这个期间配置没有变更过。然后我们在模拟配置变更的情况,再次发起请求http://localhost:8080/watch/mynamespace,等待个10秒钟,然后调用http://localhost:8080/publish/mynamespace,发布配置变更。这时postman会立刻收到response响应结果:表明在轮训期间有配置变更过。

用户评论