我正在使用akka演员来完成一些预定的任务,比如在预定的日期/时间进行的民意调查。 这样我就是在创造一个演员...
final ActorRef pollActor = pollSystem.actorOf(new Props(
new UntypedActorFactory() {
public UntypedActor create() {
return new PollActor(pollObj);
}
}), "pollActor" + pollObj.getId()+":"+pollMts);
但是当我更新已经创建的轮询以更改计划的上线日期时,我可以创建另一个actor,并且我希望停止同一轮询的现有actor。 为此我正在这样做......
ActorRef pollActor = pollSystem
.actorFor("akka://pollSystem/user/pollActor" + poll.getId()+":"+oldPollMTS);
pollActor.tell(PoisonPill.getInstance(),null);
但旧的actor没有停止,也没有调用postStop()方法。我也尝试过Kill.getInstance(),但是徒劳无功。 帮助我找到一种方法,我可以阻止老演员和发送给它的消息;从而创造了一个新的演员。