Реактор: скачивайте n изображений параллельно, и отказ одного не должен влиять на остальные - PullRequest
0 голосов
/ 24 марта 2019

У меня есть случай, когда я хочу получить пути к изображениям (через n вызовов REST). Я хочу, чтобы эти вызовы выполнялись параллельно, и отказ одного не должен влиять на остальные.

Это то, что я пробовал, но проблема в том, что вызовы выполняются последовательно:

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

Я пробовал это в Spring webflux. Есть мысли о том, что мне здесь не хватает?

1 Ответ

0 голосов
/ 09 мая 2019

Используйте .parallel(), чтобы превратить Flux, который излучает элементы последовательно в ParallelFlux.

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