Не то чтобы я знал, но я могу ошибаться.
Тем не менее, вы можете предоставить эту логику c самостоятельно для этого конкретного шага. Например, но если вы создаете своего собственного Потребителя и оборачиваете в него логи повторных попыток c
public class RetryConsumer<T> implements Consumer<T> {
private int retryCount;
private Consumer<? super T> delegate;
public RetryConsumer(int retryCount, Consumer<? super T> delegate) {
this.retryCount = retryCount;
this.delegate = delegate;
}
@Override
public void accept(T value) {
int currentAttempts = 0;
while (currentAttempts < retryCount) {
try {
delegate.accept(value);
break;
} catch (Throwable e) {
currentAttempts++;
if (currentAttempts == retryCount) {
throw e;
}
//Still have some attempts left
}
}
}
}
Вы можете затем использовать это в своих шагах Flux, то есть
Flux.fromArray(new Integer[]{1, 2, 3})
.doOnNext(new RetryConsumer<>(2 , i -> {
System.out.println("i: " + i);
if (i == 2) {
System.out.println("2 found");
throw new RuntimeException("Error");
}
}))
.subscribe();