Akka演员内存泄漏或管理

时间:2015-11-12 09:59:43

标签: scala memory-management memory-leaks out-of-memory akka

你对akka演员内存管理/泄漏有任何经验吗?这里我有一个模块使用akka actor与其他模块进行通信,但随着时间的推移,其中一个模块由于堆内存大小而失效。

完成后是否有必要向儿童演员发送毒丸?因为每个请求都在,我想制作另一个演员,每个请求。是否有必要再次向儿童演员送毒丸,如果他们有自己的孩子演员呢?

ps:我正在使用Scala Akka

由于

2 个答案:

答案 0 :(得分:3)

是的,您创建的每个Actor都需要显式停止。这通常是通过从Actor中调用context.stop(self)(如果它可以确定它已完成其任务)或让主管使用context.stop(child)来停止它来完成的。

答案 1 :(得分:1)

为了防止内存不足,您可以在接收actor上使用有界邮件队列aka邮箱:http://doc.akka.io/docs/akka/snapshot/scala/mailboxes.html

要选择管理子actor(重启,终止等)的方式,请使用supervisor策略: http://doc.akka.io/docs/akka/snapshot/general/supervision.html。可以在任何级别/父级选择主管策略。