相关疑难解决方法(0)

用于阻塞I/O任务的ParallelFlux与flatMap()

我有一个Project Reactor链,它包含一个阻塞任务(网络调用,我们需要等待响应).我想同时运行多个阻塞任务.

似乎可以使用ParallelFlux或flatMap(),裸骨示例:

Flux.just(1)
    .repeat(10)
    .parallel(3)
    .runOn(Schedulers.elastic())
    .doOnNext(i -> blockingTask())
    .sequential()
    .subscribe()
Run Code Online (Sandbox Code Playgroud)

要么

Flux.just(1)
    .repeat(10)
    .flatMap(i -> Mono.fromCallable(() -> {blockingTask(); return i;}).subscribeOn(Schedulers.elastic()), 3)
    .subscribe();
Run Code Online (Sandbox Code Playgroud)

这两种技术的优点是什么?一个比另一个更受欢迎吗?还有其他选择吗?

project-reactor reactive-streams

13
推荐指数
1
解决办法
2833
查看次数

标签 统计

project-reactor ×1

reactive-streams ×1