如果一个控制器方法的返回类型是CompletableFuture
,结果将在后面异步完成,但如何为此请求设置超时,以便如果没有及时完成,spring将中止请求?
以遗留的方式,通过AsyncContext
,我可以做到。但是CompletableFuture
案件怎么样?我找不到任何相关的文档。
请注意,我知道全局默认超时设置,但我的问题是如何设置每个请求的超时。
我试着回答我的问题。
CompletableFuture
的加工与DeferredResult
相同?
只有在处理程序方法返回后,spring才会执行request.startAsync()
,然后我认为更改超时的唯一方法是启用AsyncHandlerInterceptor
并在request.getAsyncContext().setTimeout()
中执行afterConcurrentHandlingStarted()
?