【问题标题】:Akka: How to get Children actor on RestartAkka:如何让儿童演员重新启动
【发布时间】:2017-02-09 15:54:43
【问题描述】:

当系统重新启动时,context.children() 调用为特定父级返回零个子级。在重新启动之前,context.children() 返回父级拥有的实际子级数。

有人可以告诉我如何在重启后为父级获取子级 ActorRef 吗?

我的用例是:

在重新启动之前,假设有 5 个父母的孩子。现在,我希望计算表现并计算表现我需要所有这 5 个孩子的参与。因此,重新启动后,我可以向所有孩子发送相同的消息,之后孩子们将工作并回复父母。但是,重新启动后,我什至不知道孩子们是谁。那么,解决这类问题的最佳方法是什么?

【问题讨论】:

    标签: akka akka-persistence


    【解决方案1】:

    一种方法是让父 Actor 持久化,同时将其状态设为子 ID 列表。这样,当系统重新启动并重新创建父级时,它将恢复其状态。

    【讨论】:

      【解决方案2】:

      “父子”角色关系的唯一问题是,当您重新启动应用程序时,“父子”角色关系本身会丢失。基本上,这种关系本身并不是持久的。

      正如flare 所提到的,您需要让您的父演员也持久化并维护所有孩子的名字。然后在重新启动期间,您的持久父actor必须通过context.actorOf(...)

      根据存储的ID(名称)手动重新创建所有这些“父子”关系

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-06
        • 1970-01-01
        • 2020-05-13
        • 1970-01-01
        • 2015-10-16
        • 1970-01-01
        相关资源
        最近更新 更多