在Akka.net集群中的演员之间传递大字节[]

时间:2018-09-11 17:19:57

标签: akka.net akka-remote-actor

我是Akka.net的新手。我有2个参与者,一个正在请求一个字节数组,另一个正在从数据库中获取它,并将其告知发送方。如果第二个参与者在远程中,则不会将冗长的数组传递给发送者。 如果我想将字节数组作为块发送,我可以在第二个actor的循环中告诉发送方,但是我不知道如何让第一个actor侦听所有的块消息并将它们聚合为一个字节数组。 请帮助我。

1 个答案:

答案 0 :(得分:0)

一种解决方法是,来自第二个参与者的第一条消息类似于PrepareForIncomingData消息,当接收到第一个参与者时转换为WaitForDataToComplete状态,在该状态下它仅接收特定的消息类型,例如IncomingDataChunk和IncomingDataCompleted。

在这种状态下,其他任何消息都被隐藏,一旦收到IncomingDataCompleted消息,您将转换回常规状态并取消隐藏任何已隐藏的消息。

请参阅文档以了解变得/变得不受欢迎-http://getakka.net/articles/actors/receive-actor-api.html#becomeunbecome

或者另一个选择可能是有限状态机-http://getakka.net/articles/actors/finite-state-machine.html

或者也许将数据写入共享位置,并且消息仅包含第一个参与者可以从中读取数据的路径。