0
我正在使用毒丸殺死演員(A)的兒童(Bx)演員。每個孩子都有另一個孩子(Cx)和更遠的孩子。所以它想A -> B1 -> C1,C2,C3 -> Dx
。如果我只是將PoisonPill發送給演員B,那麼它會殺死下面的後代演員嗎?Akka PoisonPill會殺死它的子女的後代嗎?
Thanksa
我正在使用毒丸殺死演員(A)的兒童(Bx)演員。每個孩子都有另一個孩子(Cx)和更遠的孩子。所以它想A -> B1 -> C1,C2,C3 -> Dx
。如果我只是將PoisonPill發送給演員B,那麼它會殺死下面的後代演員嗎?Akka PoisonPill會殺死它的子女的後代嗎?
Thanksa
是的,一旦演員收到PoisonPill
消息後,停止服用了消息,並且將停止兒童演員。
從演員生命週期中可以清楚地看出,父代演員在父代演員停止前會在preRestart
期間殺死任何兒童演員並等待終止。在你的情況下,不想讓孩子停下,然後override preRestart
直接撥打postStop
。
發送停止給兒童演員(A-> B),它是否會發送從B到其後代的停止信號也進一步(B-> C,C-> D)? – ans4175
它會的。除非您重寫'preRestart'來更改默認行爲,否則所有actor在停止之前都會終止其子actor。所以在你的情況下,如果你發送'PoisonPill'給演員'A','B,C和D'會在演員A停止前被殺死,即使'C'是'B'的子演員,'D'是'C'的小孩演員。 – 757071
好吧,謝謝你的簡潔解釋:) – ans4175