终止actor层次结构

时间:2017-01-24 16:43:10

标签: java garbage-collection akka lifecycle

我有三个演员。演员A产生演员B和演员C,用于执行各种任务,不依赖于演员B和C的结果

演员B和C按以下方式创建:

ActorRef actorB = this.getContext().actorOf(Props.create(ActorB.class, t));
actorB.tell(new msg, getSelf());

ActorRef actorC = this.getContext().actorOf(Props.create(ActorC.class, t));
actorC.tell(new anothermsg, getSelf());

如何确保在每个参与者完成任务后拆除此层次结构?

我是否向演员B和C发送了明确的poisonPill消息? 或者这会被照顾吗?

1 个答案:

答案 0 :(得分:1)

如果您希望B和C独立于A停止,那么最简单的方法是让他们在作业完成后调用context stop self。 A可以通过以下方式向他们注册 - 例如, - context watch b

如果,否则,您希望整个层次结构同时停止 - 即当A终止时 - 那么您只需要停止A,因为它的所有子项将因此自动停止。

有关该主题的更全面的报道,请参阅here