Вы можете создать актера, который действует как буфер между производителем и потребителем. Буфер проверяет свой почтовый ящик на свои данные цикла. Он отправляет обратно сообщение «перегрузки» производителю, когда число буферизованных продуктов слишком велико; и отправляет «чистое» сообщение, как только все возвращается в порядок. В случае слишком большого количества сообщений он просто отбрасывает входящие (или самые старые).
Потребитель активно запрашивает товары из буфера, который, в свою очередь, отправляет обратно один товар. Если буфер пуст, потребитель продолжает ждать ввода.
Производитель отправляет продукты в буфер субъекта. Если он получает сообщение «перегрузки», он может остановить производство или продолжить производство, зная тот факт, что продукты могут упасть.
Конечно, эта логика может быть непосредственно внедрена в самого производителя или потребителя, но отдельный буфер позволит вам более легко представить нескольких производителей и / или потребителей.