2015-09-29 3 views
2

Я играю с рамкой Akka для Java, версия 2.3.9 Все идет хорошо, но проблема с обратным вызовом. Когда я бегу для обратного вызова getSender().tell(null, self());Akka сообщение null

я получаю в журналах

[akka://system/user/TowerOfDeath:Current:266:ceil:34] Message is null 
    akka.actor.InvalidMessageException: Message is null 
    at akka.pattern.PromiseActorRef.$bang(AskSupport.scala:266) 
    at akka.actor.ActorRef.tell(ActorRef.scala:123) 

Это хорошо, чем я не могу отправить нуль, сделал небольшое общее сообщение и проблема решена. Но если эта ошибка происходит, актер умирает. Я считаю, что иногда можно создать мешок, где я отправлю объект, что теперь null.

Горячий для восстановления актера в этом случае?

Спасибо за помощь.

ответ

2

Использование Контроль, который позволяет родительскому актера, чтобы решить, как бороться с отказами (ошибок) так:

Вот пример: http://doc.akka.io/docs/akka/2.3.14/java/fault-tolerance.html#Creating_a_Supervisor_Strategy

Для получения дополнительной информации:

http://doc.akka.io/docs/akka/2.3.14/general/supervision.html http://doc.akka.io/docs/akka/2.3.14/java/fault-tolerance.html

+0

Не можете ли вы показать пример, как правильно его обрабатывать? – witeX

+0

См. Обновленный ответ. –

+0

Спасибо, Также у меня возникла проблема с супервизором, потому что созданы дочерние участники с вызовом, system.acrtorOf, а не getContext(). ActorOf – witeX

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