У меня есть очередь RabbitMQ, которая иногда может содержать значительный объем данных для обработки.
Насколько я понимаю, использование channel.consume
попытается принудительно отправить сообщения в программу Node, даже если она достигает своего предела ОЗУ (и, в конечном итоге, сбой).
Как лучше всего обеспечить, чтобы работники получали для обработки столько задач, сколько они способны выполнить?
Я думаю об использовании цепочки потоков (преобразования) вместе с channel.get
(которая получает только одно сообщение). Если буфер первого потока заполнен, мы просто перестаем получать сообщения.