Как предотвратить рост почтового ящика актера в Scala? - PullRequest
6 голосов
/ 15 июля 2011

Насколько я знаю, mailboxes в Scala actors не имеет ограничений по размеру. Таким образом, если actor читает сообщения со своего mailbox медленнее , чем другие отправляют сообщения на этот mailbox, то это в конечном итоге создает утечку памяти.

Как мы можем быть уверены, что этого не произойдет? Должны ли мы в любом случае ограничить размер mailbox? Каковы лучшие методы предотвращения роста mailbox? 1012 *

1 Ответ

4 голосов
/ 15 июля 2011

Вместо стратегии push , когда производители отправляют напрямую сообщения потребителям, вы можете использовать стратегию pull , где потребители запрашивают сообщения от производителей.

КомуУбедитесь, что ответ почти мгновенный, производители могут заранее предоставить ограниченное количество данных.Когда они получают запрос, сначала они отправляют одну из предварительно сгенерированных данных, а затем генерируют новую.

Вы также можете использовать актеров Akka, которые предоставляют ограниченный почтовый ящик.

...