Akka:如何在重新启动时获取子Actor

3

当系统重新启动时,context.children()方法对于特定的父级对象将返回零个子对象。在重新启动之前,context.children()方法返回了该父对象实际拥有的子对象数量。

请问如何在重新启动后获取父对象的子ActorRef?

我的用例是:

在重新启动之前,假设有5个父对象的子对象。现在,我希望计算性能,为此我需要所有这些5个子对象的参与。因此,在重新启动后,我可以向所有子对象发送相同的消息,然后子对象将进行工作并响应父对象。但是,在重新启动后,我甚至不知道这些子对象是谁。那么,解决这类问题的最佳方法是什么?

2个回答

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

0

关于“父子”演员关系的唯一问题是,当您重新启动应用程序时,“父子”关系本身会丢失,特别是这种关系本身不是持久性的,因此,正如flare所提到的,您需要使您的父级演员也是持久性的,并维护所有子项的名称。然后,在重新启动期间,您的持久性父级演员必须根据存储的ID(名称)手动重新创建所有这些“父子”关系,通过context.actorOf(...)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接