反应器:并行下载n个图像,一个图像的故障不会影响其余图像



我有一个用例,我想获取图像路径(通过n 个 REST 调用(。我希望这些调用并行运行,一个调用的失败不会影响其余的调用。

这是我尝试过的,但问题是调用按顺序运行:

Scheduler scheduler = Schedulers.elastic();
Flux.fromIterable(product.getIds()).runOn(scheduler)
                     .map(item -> getImages(item))
                      .subscribe(img -> System.out.println(img));

我一直在春季网络flux中尝试它。关于我在这里错过了什么的任何想法?

使用 .parallel() 将按顺序发出项目的Flux转换为ParallelFlux

Flux.fromIterable(product.getIds())
  .parallel()
  .runOn(Schedulers.elastic())
  .map(item -> getImages(item))
  .subscribe(img -> System.out.println(img));

最新更新