J'ai une chaîne Project Reactor qui comprend une tâche de blocage (un appel réseau, nous devons attendre une réponse). J'aimerais exécuter plusieurs tâches de blocage simultanément.ParallelFlux vs flatMap() pour une tâche d'E/S bloquantes
Il semble que ce soit ParallelFlux ou flatMap() pourrait être utilisé, des exemples: os nus
Flux.just(1)
.repeat(10)
.parallel(3)
.runOn(Schedulers.elastic())
.doOnNext(i -> blockingTask())
.sequential()
.subscribe()
ou
Flux.just(1)
.repeat(10)
.flatMap(i -> Mono.fromCallable(() -> {blockingTask(); return i;}).subscribeOn(Schedulers.elastic()), 3)
.subscribe();
Quels sont les avantages des deux techniques? L'un doit-il être préféré à l'autre? Y a-t-il des alternatives?