可观察到由冷热观察组成

时间:2015-12-24 11:11:52

标签: java reactive-programming rx-java reactive-streams

我很难找到合适的方法来编写一个observable,它会从给定的冷可观察A中发出所有项目,并且一旦完成继续使用热可观察B

这是我的具体用例:我有一个数据收集器,它实时将数据附加到仅附加数据库(事件流)。当一个请求到达流式传输所有事件流时,它应该从数据库开始流式传输,一旦数据库没有更多数据,它就会开始流式传输任何收集器流......正如你所看到的那样,它们都是可观察的。 / p>

我是反应式编程的新手,因此我的问题可能有点抽象。任何帮助表示赞赏。

以下是此行为的示意图:

B ----B---B---B----B--B---B---B---X------>
                   |  |   |   |   |
                   |  |   |   |   |
R --A---A--A----?--B--B---B---B---X------>
    |   |  |    |
    |   |  |    |
A --A---A--A----X------------------------>

此处R我们的结果是可观察的,A是冷的,B是热门的。RB<h2 class="big caps" style="text-align:left">WHAT WILL YOU LEARN?</h2> 终止。

2 个答案:

答案 0 :(得分:3)

如果B很热,那么只需要A.concat(B)就可以了,因为B只会在A完成时订阅。

答案 1 :(得分:0)

我怀疑你需要的是两个队列,而不是可观察的队列。

QueueA具有优先级,QueueB仅在QueueA获得退出/结束消息信号时处理。

你认为这种情况可能适合吗?