0
我有一個創建路由器的actor。當所有工作完成後,我想停止當前的演員,停止它的路由器和所有路線。阿卡路由器的路由發送終止消息給自己
這是我的代碼停止層次:
// stopping children
context.children foreach context.stop
// stopping current actor
context.stop(self)
但在日誌中我得到的消息是這樣的:
留言[akka.dispatch.sysmsg.Terminate]從..至...不是 已交付。 [5]遇到了死信。
即routees發送終止消息itslef。
我認爲這個問題與我的代碼阻止actor(上圖)有關。
我該如何解決它?
謝謝,但爲什麼路由發送自己的這條消息?當我打電話給「兒童停止」時,這意味着路由器本身將被停止,並自動停止其路由。 – MyTitle
這是一個內部消息,演員不能處理(由系統處理),因爲它是私人的,只有Akka系統可以創建一個。它在演員停止時創建一個。你看到死信,因爲孩子們被停止了兩次。一旦你明確地阻止他們,然後當他們的父母停止並遞歸地停止所有的孩子。 –