【发布时间】:2017-08-27 15:26:59
【问题描述】:
不推荐使用ActorPublisher 以支持GraphStage,看起来我必须放弃我的actor-managed state 以换取GraphStateLogic-managed state。但是使用 actor 管理的状态,我可以通过向我的 actor 发送任意消息来改变状态,而使用 GraphStateLogic 我不知道该怎么做。
因此,之前如果我想创建一个 Source 来公开通过 HTTP 请求/响应提供的数据,然后通过 ActorPublisher 请求通过 Request 消息传达给我的演员,我可以通过启动一个在后台发出 HTTP 请求并向我的 actor 发送响应,以便我可以将其内容发送到下游。
如果我不能向它发送任意消息,如何使用GraphStageLogic 实例执行此操作并不明显。需求由OnPull() 传达,我可以通过在后台启动 HTTP 请求来做出反应。但是当响应进来时,我如何安全地改变 GraphStateLogic 的状态呢?
(旁白:以防万一,我使用的是 Akka.Net,但我相信这适用于整个 Akka 流模型。我假设 Akka 中的解决方案也是 Akka.Net 中的解决方案。我还假设 ActorPublisher 最终也会在 Akka.Net 中被弃用,即使目前还没有。)
【问题讨论】:
标签: akka akka-stream akka.net