如果我有一个有{Child} A
的演员C
并向PoisonPill
发送C
,我会A
将PoisonPill
转发给{ {1}}还是会C
?
我有一个设置,context.stop(C)
很有可能创建由A
处理的工作。所以我希望C
在处理A
之前到达的所有消息(同时发送到PoisonPill
的消息)并且C
处理所有这些消息之后终止。它终止了。
答案 0 :(得分:3)
我认为Akka不会转发PoisonPill
。当演员收到PoisonPill
时,它会调用self.stop()
。您可以在Akka
源代码中看到此处:
在Actor中调用stop
时,递归调用其所有子节点中的stop
。 stop
将允许处理当前邮件,但会丢弃邮箱中的其余邮件。