0
私たちはAkkaをJavaで使用していますが、ask
コールバック内でコールを使用しても応答はありませんが、代わりにtell
を使用すると問題ありません。違いは何ですか?受信アクターにjava - forwardコールバックでAkkaの俳優の中
final Message message = Message.builder().build();
final ActorRef sender = getSender();
final ActorContext context = getContext();
PatternsCS.ask(actor, Command.builder().build(),
Timeout.durationToTimeout(Duration.create(5, TimeUnit.SECONDS))).thenAccept(result -> {
// do something with result
...
// 1: Does not work
actor.forward(message, context);
// 2: Does work
actor.tell(message, sender);
});
最初のケースでgetender()
を呼び出すときにActorRef
渡されたと評価され第二の場合にDeadLetterActorRef
と評価。
なぜforward
はここでは機能しませんか? tell(message, sender)
との違いは何ですか?