Ява / Акка здесь. У меня есть следующий актер:
public class MyActor extends AbstractActor {
private Logger log = LoggerFactory.getLogger(this.getClass());
public MyActor() {
super();
}
@Override
public Receive createReceive() {
return receiveBuilder()
.match(Init.class, init -> {
log.info("Sending myself a Poison Pill...");
self().tell(PoisonPill.getInstance(), self());
}).match(PoisonPill.class, poisonPill -> {
log.info("Got the Poison Pill...");
context().system().terminate();
}).build();
}
}
Когда он получает сообщение Init
, я вижу следующую запись в журнале:
Sending myself a Poison Pill...
Но я никогда см .:
Got the Poison Pill...
Кроме того, приложение просто сидит там и не закрывается, как ожидалось. Есть ли в моем использовании self().tell(PoisonPill.getInstance(), self())
что-то, что мешает ему получить сообщение и завершить работу?