Akka Streams - 结合最新的操作

时间:2016-10-19 15:45:52

标签: scala akka rx-java akka-stream rx-scala

我想按照here所描述的最新版本与Akka Streams结合使用。

我无法弄明白该怎么做 - 请帮忙!

谢谢, 莱恩。

1 个答案:

答案 0 :(得分:2)

我刚刚快速实施了它。不确定它是否无用,但值得一试:) https://gist.github.com/tg44/2e75d45c234ca02d91cfdac35f41a5a2 欢迎提出要点下的评论!

当我们在gitter频道上发言时,它无法通过阶段构建实现,但您可以使用自定义阶段编写功能。你需要两个输入和一个输出(可以扩展到N输入),所以它是一个扇形。

我将传入的元素保存到选项中,并且每当输入准备好(也就是发送元素)时,我将给定元素保存到选项中。每当输出需要一个元素(并且我们已经从两个输入中都有一个元素)时,我将选项中的值作为一个tupple给它。这是背压意识的方法。

对于背压方法(产生所有对),你需要处理等待“其他”输出元素然后处理最后一个输出元素,并且需要处理输入拉动。我认为我的实现仍然无法处理速度慢的消费者情况下的太快生产者(我们可以错过一个元素,可以使用emits处理),并且如果两个输入都多次生成相同的元素,可能会死锁(也许发出也可以处理这个)。

如果您想扩展我的代码功能或想要编写其他自定义阶段,请阅读以下内容:http://doc.akka.io/docs/akka/2.5/scala/stream/stream-customize.html