具有优先级的RxJava Zip

萨德·法鲁克(Saad Farooq)

这是问题所在。我有许多异步操作,这些操作的结果汇总到一个单独的操作中,然后进一步处理。但是,并非所有操作都相等,并且错误处理基于哪个操作失败而不同。

详细地说,假设我们有操作A,B和C。如果A失败,我们需要结束处理,但是如果B或C失败,我们将照常继续处理其他操作。

当前,我们使用倒计时锁存器和大量状态管理来实现这一目标,这些状态管理需要接近一百行代码。我想将其移至基于RxJava的实现中。我的第一个想法是尝试Observable.zip运算符,但是将所有可观察值均等对待,在这种情况下是不正确的。我的另一个想法是将调用链接起来,这行得通,但是这意味着所有操作都不会同时开始,从而导致更长的总体时间。

谁能指导我如何实现这一目标?

戴夫·摩登(Dave Moten)

用途.onErrorResumeNext

Observable<T> a, b, c;
Observable.zip(
    a,
    b.onErrorResumeNext(t -> Observable.just(null)),
    c.onErrorResumeNext(t -> Observable.just(null)),
   (x, y, z) -> <your aggregation>)
...

由您来代表错误的可观察物null您还可以使用Optional

Observable.zip(
    a,
    b.map(x -> Optional.of(x))
     .onErrorResumeNext(t -> Observable.just(Optional.empty())),
    c.map(x -> Optional.of(x))
     .onErrorResumeNext(t -> Observable.just(Optional.empty())),
   (x, y, z) -> <your aggregation>)

如果bc对应于外部服务呼叫,如果用替换b太长的时间,您可能还想忽略它们b.timeout(5, TimeUnit.SECONDS)简直!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有优先约束的SSIS控制流优先级

来自分类Dev

具有两个优先级Python的优先级队列

来自分类Dev

具有两个优先级值的优先级队列

来自分类Dev

具有两个优先级Python的优先级队列

来自分类Dev

对具有较高优先级的一系列元素和具有较低优先级的其他元素的优先级队列进行排序

来自分类Dev

具有减少键操作的Javascript优先级队列

来自分类Dev

具有自定义顺序的优先级队列

来自分类Dev

具有优先级的数据帧的模式

来自分类Dev

具有优先级属性的表联接

来自分类Dev

创建具有相反顺序的优先级队列

来自分类Dev

TestNG中具有多个类的优先级

来自分类Dev

Java的流8具有优先级过滤

来自分类Dev

Ubuntu HDD始终具有启动优先级

来自分类Dev

mysql选择具有优先级的值

来自分类Dev

CoreData-具有优先级的多对多关系

来自分类Dev

处理具有相同优先级的中断

来自分类Dev

如果多个元素具有相同的优先级,Python中是否有“ Lifo”类型的优先级队列?

来自分类Dev

C ++实现具有不同优先级功能的优先级队列的最佳方法是什么?

来自分类Dev

运行具有高优先级或实时优先级的程序(是的,我已经阅读了其他线程)

来自分类Dev

具有有限大小的Clojure优先级映射

来自分类Dev

Java yield()具有同步块的线程到具有更高优先级的线程,也具有同步块。

来自分类Dev

WHERE子句中具有复杂查询的MySQL查询优先级

来自分类Dev

使用Apache Camel处理具有不同优先级的JMS消息

来自分类Dev

Unity中具有优先级/后备和泛型的依赖项注入

来自分类Dev

使Express中的特定路由比动态路由具有更高的优先级

来自分类Dev

隐式运算符是否比ToString()方法具有更高的优先级?

来自分类Dev

+和-在Angular中应该具有不同的优先级吗?

来自分类Dev

如何用O(logN)排序具有n个元素的优先级队列?

来自分类Dev

aysnc priorityQueue-更高的数字是否具有更高的优先级?

Related 相关文章

  1. 1

    具有优先约束的SSIS控制流优先级

  2. 2

    具有两个优先级Python的优先级队列

  3. 3

    具有两个优先级值的优先级队列

  4. 4

    具有两个优先级Python的优先级队列

  5. 5

    对具有较高优先级的一系列元素和具有较低优先级的其他元素的优先级队列进行排序

  6. 6

    具有减少键操作的Javascript优先级队列

  7. 7

    具有自定义顺序的优先级队列

  8. 8

    具有优先级的数据帧的模式

  9. 9

    具有优先级属性的表联接

  10. 10

    创建具有相反顺序的优先级队列

  11. 11

    TestNG中具有多个类的优先级

  12. 12

    Java的流8具有优先级过滤

  13. 13

    Ubuntu HDD始终具有启动优先级

  14. 14

    mysql选择具有优先级的值

  15. 15

    CoreData-具有优先级的多对多关系

  16. 16

    处理具有相同优先级的中断

  17. 17

    如果多个元素具有相同的优先级,Python中是否有“ Lifo”类型的优先级队列?

  18. 18

    C ++实现具有不同优先级功能的优先级队列的最佳方法是什么?

  19. 19

    运行具有高优先级或实时优先级的程序(是的,我已经阅读了其他线程)

  20. 20

    具有有限大小的Clojure优先级映射

  21. 21

    Java yield()具有同步块的线程到具有更高优先级的线程,也具有同步块。

  22. 22

    WHERE子句中具有复杂查询的MySQL查询优先级

  23. 23

    使用Apache Camel处理具有不同优先级的JMS消息

  24. 24

    Unity中具有优先级/后备和泛型的依赖项注入

  25. 25

    使Express中的特定路由比动态路由具有更高的优先级

  26. 26

    隐式运算符是否比ToString()方法具有更高的优先级?

  27. 27

    +和-在Angular中应该具有不同的优先级吗?

  28. 28

    如何用O(logN)排序具有n个元素的优先级队列?

  29. 29

    aysnc priorityQueue-更高的数字是否具有更高的优先级?

热门标签

归档