Akka:如何在重启时获得儿童演员

时间:2017-02-09 15:54:44

标签: akka akka-persistence

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

有人可以告诉我怎样才能让我们在重启后如何为孩子获得孩子的ActorRef?

我的用例是:

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

2 个答案:

答案 0 :(得分:0)

一种方法是在将父状态作为子ID列表的同时使父actor保持持久性。这样,当系统重新启动并重新创建父级时,它将恢复其状态。

答案 1 :(得分:0)

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

因为flare提到你需要让你的父actor保持持久性并保持所有孩子的名字。然后在重新启动期间,持久性父actor必须通过context.actorOf(...)

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