同じアクターに 2 つの応答を求める (?) としましょう。送信者を後で保存します。その後、送信者に送信するためにメッセージが返されます。正しい送信者 (メッセージにハッシュされたもの) を取得しますが、Akka は応答がどのメッセージに対するものであるかをどのように知るのでしょうか? ActorRef に、各応答がどのメッセージに対するものかを示す何かがありますか?
「チャンネル」ですか?
基礎となるテクノロジーをよりよく理解したいと思います。同時にソースを読んでみますが、これは本当に良い質問だと思います。
コード例:
class TestActor
[...]
def onReceive = {
case r: MessageToGoOut ⇒
messageId += 1
val requestId = clientConnectionId + messageId
senders += (requestId -> sender) //store sender for later
anotherActor ! WrappedUpMessage(requestId, MessageOut))
case m: MessageToGoBackToSender ⇒
val requestId = m.requestId
senders.get(requestId) map { client ⇒
client ! Response(m.message)
senders -= requestId
}
}
val futures = for(i <- 1 to 100) yield testActor ? new MessageToGoOut ("HEYO!" + i)
akka はメッセージが適切なアクターに確実に戻るようにするにはどうすればよいでしょうか??