1

これが重複した質問である場合はお詫び申し上げます。

私は AKKA の初心者であり、akka-java-spring サンプル コードを拡張して別のアクターを追加し、メッセージを出力して PrintMessageActor (新しい俳優)。CoutingActor から PrintMessageActor にメッセージを転送するにはどうすればよいですか。この場合、ドキュメントから以下のスニペットを使用するにはどうすればよいですか。

target.forward(result, getContext());

最初のアクターでターゲット (2 番目のアクター) を取得する方法は?

4

1 に答える 1

2

私があなたの質問を正しく理解していれば、転送アクターが転送先のターゲットをどこから知っているか知りたいですか?

2 つの可能性:

1) 転送アクターが転生したときにターゲット アクターが既に存在する場合はActorRef、コンストラクターを介して、またはメッセージでターゲット アクターを渡すことができます。独自のパラメーターを使用してカスタム Props インスタンスを作成する方法については、Propsのドキュメントを参照してください。

2) フォワーダーの作成時にターゲットが存在しないが、そのパスActorSystemがすでに明確である場合 (例: "/user/PrintMessageActor") ActorSelection、. ActorSelection は、このパスの Actor が指定された ActorSystem に存在する場合、ActorRef に解決できます。基礎となるアクターが停止すると ActorRef が無効になるため、この 2 番目のオプションが推奨されます。一方、ActorSelection は、このパスで可能な新しいアクタの化身に解決されます。

于 2013-08-19T20:28:33.330 に答える