2012-05-11 3 views
0

У меня есть вопрос, связанный с Akka 2.0.1 в Java API. У меня есть следующая ситуация:Akka стать() и getSender() несовместимо

Актер A: Получает запрос от пользовательского интерфейса. Затем он выполнит следующее.

  1. Дождитесь сообщения от УИ
  2. сбщ актеру B, чтобы получить данные
  3. Стать актером, который обрабатывает ответ от актера B, когда он был получен.

Актер B:

  1. Дождитесь сообщения от Actor А.
  2. получающего данные
  3. вызовы getSender().tell(xxx);

Это не работает, и Актер А не получит ответа. Если, однако, актер B использует глобальный actorRef для актера A в системе, в моем случае zzz.eventCaller.tell(xxx) он, однако, будет работать.

Является ли это тем, кто пропустил некоторые основные вещи или это ожидаемое поведение или ошибка?

+0

Я так плохо знаю, как выглядит код людей ... –

+0

Я добавлю пример, если у меня когда-нибудь возникнут проблемы с пониманием Акки. – StefanE

ответ

1

Поскольку вы не указали фактический код, вы можете оставить меня, чтобы угадать, что может быть с вашей проблемой. API Java Akka не имеет способа отслеживать отправителей, если вы не предоставите их:

recipient.tell (message, getSelf());

I желающий это помогает.

+0

Вы прямо на месте. В качестве побочного я хотел бы упомянуть, что я бы предпочел Scala, но пока это не вариант для моей работы :) – StefanE

+0

Happy hAkking !! –

Смежные вопросы