У меня есть группа актеров, которые отправляют много сообщений друг другу. Весьма вероятно, что очередь по умолчанию для этих актеров вызовет у многих актеров нехватку памяти.Пересылка мертвой буквы в Akka
В идеале это то, что я хочу, чтобы это произошло:
A
посылаетB
.B
говорит: «Я слишком полна для письмаL
».A
сказано это и хранитL
(возможно, на жестком диске).A
продолжает работать.- Как только
A
простаивает, он оглядывается на любые буквы и находит буквы вродеL
, что актеры (например,B
) были слишком полны, чтобы потреблять. A
попытки повторной отправкиL
поB
.- Процесс продолжает повторяться.
От каких I have read Мне нужно переключиться на заблокированную очередь. Мое впечатление, если A
отправляет сообщение B
, но почтовый ящик B
s заполнен, B
скажет: «Я полон» и вызывают таймаут. Затем он отправляется на номер DeadLetterActorRef
по номеру D
.
Проблема заключается в адаптации парадигмы «мертвой буквы» Акки к описанным выше шагам. На шаге 3 мне нужен способ сообщить A
, что это не удалось, и письмо должно быть сохранено позже. Кажется, что вы «рассказываете» этих актеров, имея их subscribe
на автобусе событий DeadLetter
. Это заставляет меня заставлять каждого актера подписываться на автобус событий DeadLetter
. Если A
не смог отправить сообщение, и B
не смог отправить сообщение, то сообщение A
и B
отправлено в очередь DeadLetter
, и оба должны сортировать мертвые буквы друг друга, чтобы найти то, что им нужно. Это кажется неэффективным. Есть ли лучший способ сделать это?
Примечание: Я не хочу загрузить баланс мертвых букв, что некоторые статьи предлагают делать с мертвой буквой очереди.
О, мальчик, еще одна рамка для изучения. Ха-ха. Благодарю. – Dair
Я собираюсь не принимать этот ответ на данный момент. Если смотреть на проблему больше, кажется, что потоки не работают в моем случае. Каждый актер в моей системе должен общаться с каждым другим актером в системе. Если я правильно понимаю, имея 100 действующих лиц, то для такого мелкозернистого общения будет 100 источников на каждого актера. Может быть, вы можете помочь? – Dair