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