Akka的硬重启指令?

Kev*_* Li 6 scala actor akka

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

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

Rol*_*uhn 5

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

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

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