我知道Spring 5 webflux how to set a timeout on Webclient,但它为所有请求全局配置超时。我正在寻找一种方法来配置每个请求的超时。即类似于这样的东西(伪代码不起作用):
WebClient client = ...
// Call 1
client.timeout(5, TimeUnit.SECONDS).contentType(APPLICATION_JSON).syncBody(..).exchange(). ..
// Call 2
client.timeout(4, TimeUnit.SECONDS).contentType(APPLICATION_JSON).syncBody(..).exchange().
字符串timeout
函数是为了演示我所追求的。我如何才能实现这一点?在超时时正确清理资源也很重要。
如果有区别的话,我使用Netty(reactor-netty
0.8.4.RELEASE):
HttpClient httpClient = HttpClient.create(). ...;
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
型
2条答案
按热度按时间rjee0c151#
这两个答案清楚地说明了这一点。
设置超时- Spring -webflux-webclient
spring-5-webflux-how-to-set-a-timeout-on-webclient的一个。
此外,如果您希望更改选项,
你可以像下面这样做,
字符串
vi4fp9gy2#
我认为你可以使用这样的东西来设置它在每个请求的基础上。
字符串