Необходимо при возникновении определенного события отправлять запросы на обработку данных на сторонний сервер, который периодически "отваливается", а кроме того имеет ограничение - принимать в минуту не более 5 запросов. Событий может возникать больше 5 в минуту, поэтому было принято решение использовать очереди (RabbitMQ).
Большинство примеров использования очередей сводится к банальному:
- Как ограничить количество прочтенных сообщений получателем, чтобы их было не более 5 в минуту, чтобы соблюсти наложенное ограничение сторонним сервером?
- Как несмотря на наличие ограничения на количество читаемых сообщений в минуту, сделать бесконечно ожидающего слушателя? Держать на проде постоянно запущенный в консоли скрипт - это плохое решение.
- Как быть с получением и обработкой сообщений, если сторонний сервер вообще на какое-то время "отвалился"?