关于Spring Webflux Webclient的一个小问题,以及如何增加客户端超时。
设置,我是客户端,我需要在web上使用第三方API。
众所周知,这个第三方API是不稳定的。对于相同的请求,相同的响应,有时需要1-2秒,有时超过4-5秒(主要是4-5秒的?)
但它是一个好的和重要的API,负载响应是非常重要的。
因此,我相信“多等一段时间”是值得的。
我能问一下怎么做吗?
经过调查,该第三方API确实收到了来自其VIP的约499个响应。
我相信这意味着“我不想等待”。但我真的想再等一等!
在看过Webclient API之后,我很难找到如何做到这一点。
目前,我正在构建我的WebClient:
WebClient.create().mutate().defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE, HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).clientConnector(new ReactorClientHttpConnector(HttpClient.create().metrics(true, () -> new MicrometerChannelMetricsRecorder(SERVICE, HTTP)).wiretap(true).secure(sslContextSpec -> sslContextSpec.sslContext(getSslContextBuilder())))).build()当前的默认超时时间是多少?
如何通过属性或代码增加?
类似于:
.setDefaultClientSideWaitTime() ?非常感谢您的帮助
发布于 2021-03-02 20:09:14
根据Netty团队的回答,它需要:
.responseTimeout(Duration.ofSeconds(10))
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10 * 1000)举一个等待10秒的例子
和
conn.addHandlerLast
.timeout(Duration.ofSeconds(10L))是不需要的
发布于 2021-02-23 14:42:18
尝试在此处为WebTestClient设置responseTimeout:https://stackoverflow.com/a/48655749/4725964
https://stackoverflow.com/questions/66325962
复制相似问题