Я перешел по предложенной @Rozart ссылке, но не смог применить решение, как оно объяснено. Мне пришлось немного его изменить:
ParallelFlux<Device> flux = Flux.fromIterable(children)
.delayElements(Duration.ofMillis(10))
.parallel(18)
.runOn(Schedulers.elastic(), 10)
.doOnNext(child -> {
try {
recursiveValidationThroughoutChildren(child, tracker);
} catch (Exception ex) {
Flux.error(ex);
}
});
Изменение необходимо, потому что ParallelFlux не поддерживает метод handle, поэтому мне пришлось добавить попытку try и перезапустить исключение с Flux.error,Я не знаю, хорошая ли это практика, но это единственный способ, с помощью которого я смог это сделать.