Я создал следующий пример актеров в Scala: http://pastebin.com/pa3WVpKy
Без регулирования (уменьшение количества сообщений SendMoney), которое происходит в строках:
val processed = iterations - counter.getCount/2
if (processed < i - banksCount * 5) Thread.sleep(1)
обработка сообщений в этом тесте очень медленная (особенно, когда в банке мало участников).
Это потому, что почтовые ящики актеров заполнены сообщениями SendMoney, а получение сообщений ReadAccountResponse занимает много времени (они обычно находятся почти в конце почтового ящика, и весь почтовый ящик должен быть отсканирован).
Как улучшить время проверки почтового ящика в таких случаях?
Может быть, есть возможность определить некоторые сообщения как высокоприоритетные?
Было бы здорово иметь два почтовых ящика - один для обычных сообщений и один для высокоприоритетных. Почтовый ящик с высоким приоритетом может быть проверен первым.
Также метод «Ответить» может автоматически отправлять сообщения в почтовый ящик с высоким приоритетом. Или, может быть, создать два почтовых ящика - для обычных сообщений и ответов?
Какое у тебя мнение?
С уважением
Войцех Дурчиньский