据我所知,mailboxes
斯卡拉 actors
没有大小限制。所以,如果 actor
从其 mailbox
读取消息比其他人发送消息慢 mailbox
,那么它最终会造成内存泄漏。
我们如何确保它不会发生?我们是否应该限制 mailbox
大小呢?防止mailbox
的最佳做法是什么?生长?
最佳答案
与生产者直接向消费者发送消息的推送策略不同,您可以使用拉取策略,消费者从生产者请求消息。
为了确保回复几乎是即时的,生产者可以提前生成有限数量的数据。当他们收到请求时,他们首先发送一个预先生成的数据,然后生成一个新的数据。
您还可以使用 Akka actor,它提供有界邮箱。
关于scala - 如何防止 Actor 邮箱在 Scala 中增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6708381/