Move onErrorResume to individual sendMessage Mono

This commit is contained in:
Chris Eager
2023-09-06 16:52:08 -05:00
committed by ravi-signal
parent 656326355a
commit a9a2e40fed

View File

@@ -360,17 +360,18 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
.limitRate(MESSAGE_PUBLISHER_LIMIT_RATE)
.flatMapSequential(envelope ->
Mono.fromFuture(() -> sendMessage(envelope)
.orTimeout(sendFuturesTimeoutMillis, TimeUnit.MILLISECONDS)))
.onErrorResume(
// let the first error pass through to terminate the subscription
e -> {
final boolean firstError = !hasErrored.getAndSet(true);
measureSendMessageErrors(e, firstError);
.orTimeout(sendFuturesTimeoutMillis, TimeUnit.MILLISECONDS))
.onErrorResume(
// let the first error pass through to terminate the subscription
e -> {
final boolean firstError = !hasErrored.getAndSet(true);
measureSendMessageErrors(e, firstError);
return !firstError;
},
// otherwise just emit nothing
e -> Mono.empty()
return !firstError;
},
// otherwise just emit nothing
e -> Mono.empty()
)
)
.subscribeOn(messageDeliveryScheduler)
.subscribe(