【问题标题】:stop all actors in a system without shutting down the system itself?在不关闭系统本身的情况下停止系统中的所有参与者?
【发布时间】:2012-03-10 13:10:36
【问题描述】:

在 Akka 2.0 中,有没有一种很好的方法可以关闭路径 /user 下的所有参与者?例如,假设我执行以下操作:

val system = ActorSystem.create("mySystem")

system.actorOf(Props(new MyActor1), "actor1")
system.actorOf(Props(new MyActor2), "actor2")

一段时间后,我决定要停止系统中的所有演员。如果我理解正确,actor1 和 actor2 将是路径 /user 的子级,但我没有看到一个方法可以为我提供 ActorRef 的子级的可迭代。还有其他方法吗?

【问题讨论】:

  • 你可能不想直接在根目录下创建很多演员,因为这会创建一个非常浅但很宽的树。先创建一个关卡,然后 PoisonPill 那个关卡?
  • 我原本以为这不适用于我的问题,但经过更多考虑,我认为可能需要另一层演员。我基本上是在管理服务的连接,并且这些连接直接挂在参与者系统上。我相信我会添加对连接容器的支持。谢谢!

标签: scala akka


【解决方案1】:

使用演员选择向所有顶级演员发送 PoisonPill:

system.actorSelection("/user/*") ! PoisonPill

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多