Данные теряются в ParallelFlux при отказе рельса - PullRequest
1 голос
/ 28 сентября 2019

Я использую ParallelFlux, и один из рельсов не работает.Я не могу «восстановить» его или даже обработать события, которые должны были перейти на этот рельс

Flux.just(1, 2, 3, 4, 5, 6, 7, 8, 9)
    .parallel(4)
    .runOn(Schedulers.parallel())
    .doOnNext(e -> {System.out.println("test "+e); if (e % 2 == 0) throw new RuntimeException(e+":"+2);})
    .doOnNext(e -> {if (e % 3 == 0) throw new RuntimeException(e+":"+3);})
    .subscribe(
        goodNumber -> System.out.println("Good number "+goodNumber), 
        err -> System.out.println("Failed number "+err.getMessage()
    );

Я бы хотел обработать все данные из диапазона, но мне не хватает 6,7,8, потому что их рельсы отменены.

Результат, который я получаю:

test 2 test 4 test 3 test 1 Good number 1 test 5 Good number 5 test 9 Failed number 4:2 Failed number 2:2 Failed number 3:3 Failed number 9:3

Как правильно распараллелить работу и выполнить функцию 'onErrorContinue' для каждой шины?

...