spring - spring mvc:当控制器的返回类型为CompletableFuture时如何设置请求超时?
问题描述
如果一个控制器方法的返回类型是CompletableFuture
,结果会在后面异步完成,但是如何设置这个请求的超时时间,这样如果没有及时完成,spring 会中止请求呢?
以传统方式, via AsyncContext
,我可以做到。但是CompletableFuture
案例呢?我找不到任何相关的文档。
请注意,我知道全局默认超时设置,但我的问题是如何为每个请求设置超时。
解决方案
我试着回答我的问题。
的处理CompletableFuture
与DeferredResult
?
springrequest.startAsync()
只会在处理程序方法返回后才会执行,那么我认为更改超时的唯一方法是启用 aAsyncHandlerInterceptor
和 do request.getAsyncContext().setTimeout()
in afterConcurrentHandlingStarted()
?
推荐阅读
- rx-java - 重置事件上的 Observable.interval 时间
- android - 为什么在Activity之间切换时会调用Activity.onUserInteraction()?
- ruby - 如何在 Alpine 上使用错误的 Ruby 路径修复 Docker
- trace32 - 运行 Lauterbach CMM 脚本时调试端口问题
- android - 构建 kotlin 应用程序时出现 androidx.room.InvalidationTracker 错误
- javascript - 传单叶绿素图颜色未更新
- node.js - 将图像上传到 S3 并读取 req.body 中的键值
- python-3.x - S3 Query Exception file has a invalid version number and InvalidRange The requested range is not satisfiable
- string - 试图在汇编 at&t 中编写 strcpy,没有输出
- reactjs - 更新状态时不应重新渲染类组件