在 Spring WebFlux Webclient 中设置超时
我正在使用Spring Webflux WebClient从我的Spring引导应用程序进行REST调用。每次在30秒内获得超时。
以下是我试图在WebClient of Spring webfulx中设置套接字超时的一些代码。
- ReactorClientHttpConnector connector = new ReactorClientHttpConnector(options -> options
.option(ChannelOption.SO_TIMEOUT, 600000).option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 600000));
- ReactorClientHttpConnector connector = new ReactorClientHttpConnector(
options -> options.afterChannelInit(chan -> {
chan.pipeline().addLast(new ReadTimeoutHandler(600000));
}));
- ReactorClientHttpConnector connector1 = new ReactorClientHttpConnector(options -> options
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 600000).afterNettyContextInit(ctx -> {
ctx.addHandlerLast(new ReadTimeoutHandler(600000, TimeUnit.MILLISECONDS));
}));
并尝试使用“clientConnector”方法在“WebClient”中添加上述连接器设置。
并且还尝试设置超时,如下所示:
webClient.get().uri(builder -> builder.path("/result/{name}/sets")
.queryParam("q", "kind:RECORDS")
.queryParam("offset", offset)
.queryParam("limit", RECORD_COUNT_LIMIT)
.build(name))
.header(HttpHeaders.AUTHORIZATION, accessToken)
.exchange().timeout(Duration.ofMillis(600000))
.flatMap(response -> handleResponse(response, name, offset));
上述选项都不适合我。
我正在使用 org.springframework.boot:spring-boot-gradle-plugin:2.0.0.M7,它之间依赖于 org.springframework:spring-webflux:5.0.2.RELEASE。
请在这里建议,让我知道,如果我在这里做错了什么。