java - RX Java 中的分组并行调用

标签 java rx-java rx-java3

有谁知道如何执行以下操作: 必须解析元素的内容,并且必须通过并行查询对子元素进行分组 仅当组查询之前已完成时,您才应前进到列表中的下一项

Element element = new Element(); 
element1.get(0) = urlA
element1.get(1) = urlB
element1.get(2) = urlC

List<Element> list = new ArrayList();
list.get(0); //consult in parallel  [urlA, urlB, urlC]

//You must wait for the previous query to finish
list.get(1); //consult in parallel  [urlX, urlY, urlZ] 

我目前使用rxjava-3.0.3

最佳答案

您可以尝试使用concatMap concatMap marble diagram运算符

所以代码可能如下所示

Flowable.fromIterable(list)
.concatMap(element -> Flowable.just(0, 1, 2)
  .map(index -> element.get(index))
  .observeOn(Schedulers.computation())
  .flatMap(url -> doParsingInParallel(url)))
.doOnNext(parsingResult -> handleParsingResult(parsingResult));

关于java - RX Java 中的分组并行调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61881002/

相关文章:

c# - 像java一样的Visual Studio参数化单元测试

Java Comparator 使用 .reverseOrder() 但有一个内部类

java - 如何让 RxJava 间隔立即执行 Action

android - 带有转换器的 Rxjava 静态通用实用方法

java - 为什么 Flowable.subscribe(Subscriber) 不返回 Disposable?

java - 为什么不调用 doOnDispose?

java - RXJava 顺序执行 observable

java - 如何制作参数化方法?

java - 外键注释上同一实体的 Hibernate OneToOne 关系

android - 如何将数组转换为可观察的