【发布时间】:2016-08-05 11:13:02
【问题描述】:
首先,我对 Akka 和演员模型还很陌生,所以也许我做错了一切。
我有一个输入actor,它从流源获取数据并将它们传递给具有一些内部状态的子处理器actor。如果连接断开,输入actor可能会崩溃,这会触发其重新启动。问题在于,这会触发其子代的重新启动,这会使它们失去状态。我不希望这样,因为输入流可能会恢复并且它们的状态将再次变得相关。此外,处理器是根据输入中的某些数据生成的,因此我看不到在输入参与者之外创建它们的方法。
换句话说,问题是“我如何只重新启动actor管道的输入而不重新启动进一步的阶段”?
【问题讨论】:
-
请看这个答案:stackoverflow.com/questions/20528411/… 简短的回答是:不,如果不重新启动子actors,就无法重新启动父actor。您可以将参与者状态存储在 JVM 之外的某个位置(查看 akka 持久性)。