Код: Выделить всё
java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 20000ms in 'flatMap' (and no fallback has been configured)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:296) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:281) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:420) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:270) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:285) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) ~[reactor-core-3.6.7.jar:3.6.7]
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) ~[reactor-core-3.6.7.jar:3.6.7]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Код: Выделить всё
public Mono invokeXXXService(XXXRequest request) {
return webClient
.baseUrl(XXXUrl)
.build()
.post()
.contentType(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(request))
.exchangeToMono(clientResponse -> clientResponse.toEntity(XXXResponse.class))
.timeout(java.time.Duration.ofMillis(20000))
.onErrorResume(throwable -> {
LOG.error("Errors while getting res from XXX");
return Mono.just(ResponseEntity.status(500).body(null));
});
}
- Каковы могут быть потенциальные причины возникновения этого исключения TimeoutException в моем
веб-клиенте WebFlux? - Поможет ли увеличение значения тайм-аута или
есть ли лучший способ справиться с потенциальными задержками в ответе? - Существует ли рекомендуемый подход для обеспечения устойчивости моего кода к таким
задержкам, например, с использованием механизмов повторной попытки или автоматического выключателя? Если да, то как
я могу правильно реализовать это, используя возможности Reactor?
Подробнее здесь: https://stackoverflow.com/questions/790 ... map-and-no