Akka的硬重启指令?

时间:2013-03-04 23:20:14

标签: scala akka actor

是否有一种优雅的方式来重新启动演员 - 即清除邮箱和内部状态?

我知道可以通过调用context.stop并重新初始化DeathWatch / Terminated消息来完成,但这有点笨拙。

1 个答案:

答案 0 :(得分:5)

不,清除邮箱正是通过终止actor来完成的。如果你在没有终止语义的情况下尝试,你怎么能确定你清除了一切?新消息可以在任何时间点出现。

所以,要做到这一点很难重启

  • 从主管策略中返回Stop指令
  • 然后在收到该演员的Terminated消息后创建一个新的孩子。