У меня есть цепочка Project Reactor, которая включает задачу блокировки (сетевой вызов, нам нужно дождаться ответа). Я хочу одновременно запускать несколько блокирующих задач.
Похоже, что можно использовать ParallelFlux или flatMap (), простые примеры:
Flux.just(1)
.repeat(10)
.parallel(3)
.runOn(Schedulers.elastic())
.doOnNext(i -> blockingTask())
.sequential()
.subscribe()
or
Flux.just(1)
.repeat(10)
.flatMap(i -> Mono.fromCallable(() -> {blockingTask(); return i;}).subscribeOn(Schedulers.elastic()), 3)
.subscribe();
В чем достоинства двух техник? Одно предпочтительнее другого? Есть ли альтернативы?