创建自定义Akka Supervisor,关闭所有链接的actor

时间:2011-12-16 23:56:04

标签: scala actor akka

This earlier question表示在主管演员上调用“停止”将关闭所有链接的演员。但是,如果创建一个“自定义”actor(而不是通过工厂),似乎不会发生此自动关闭。例如,请参阅another question的答案中的此代码:

class Module1 extends Actor {
   self.faultHandler = OneForOneStrategy(List(classOf[Throwable]), 5, 5000)

   def receive = {
       case Register(actor) =>
           self.link(actor)
   }
}

如果在上面的Module1 actor上调用了'stop',则链接到它的actor不会关闭。有没有办法让自定义actor自动关闭链接的actor?或者,如果你想创建一个自定义角色,这只是你必须自己写的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以调用“self.linkedActors.values.iterator”,然后发送PoisonPill或停止()它们。