2017-02-09 12 views
1

システムが再起動すると、context.children()コールは特定の親に対してゼロの子を返します。再起動する前に、context.children()は親が持つ子の実際の数を返しました。Akka:再起動時に子アクターを取得する方法

誰かが再起動後にどのようにして子のActorRefを親に取得できるか教えてください。

私のユースケースがある:再起動する前に

、親の5人の子供と言うが聞かせています。今、私はパフォーマンスを計算し、パフォーマンスを計算するために、私はこれらの5人の子供すべてからの参加が必要です。再起動後、すべての子どもに同じメッセージを送信するだけで、子どもが親に作業して応答することができます。しかし、再起動後、私は子供が誰であるかを知らない。だから、これらのタイプの問題を解決する最良の方法は何ですか?

答えて

0

1つの方法は、親アクターを子供IDのリストとして状態を維持しながら永続化することです。これにより、システムが再起動され、親が再作成されると、その状態が復元されます。

0

子が永続アクタである 'parent-child'アクターリレーションに関する唯一の問題は、アプリケーションを再起動したときに '親子関係'自体が失われるということです。基本的に、この関係自体は永続的ではありません。

だから、上記のflareのように、親アクターを永続化させ、すべての子どもの名前を維持する必要があります。再起動時に、永続的な親アクターは、格納されたID(名前)に基づいて、それらの親子関係を手動で再作成する必要があります。context.actorOf(...)

関連する問題