如何防止Scala中的actor邮箱增长?

时间:2011-07-15 14:16:46

标签: scala actor

据我所知,Scala mailboxes的{​​{1}}没有大小限制。因此,如果actors从其actor 较慢中读取消息而其他人向该mailbox发送消息,那么它最终会造成内存泄漏。

我们怎样才能确保它不会发生?我们应该限制mailbox大小吗?阻止mailbox成长的最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

生产者可以直接向消费​​者发送消息,而不是采用推送策略,您可以使用 pull 策略,消费者向生产者请求消息。

为了确保回复几乎是即时的,生产者可以提前生成有限数量的数据。当他们收到请求时,首先他们发送一个预生成的数据,然后生成一个新数据。

你也可以使用提供有界邮箱的Akka actor。