Я не знаком с Heroku, поэтому я не знаю, как рабочий Heroku строит потребителя rabbitMQ, у меня просто быстрый просмотр документа Heroku.
Почему потребители отображаются как «бездействующие» '?
Я думаю, что вы имеете в виду, что очередь "простаивает"? Поскольку state
в очереди относится к трафику c, это просто означает, что для потока заданий в очереди не выполняется работа. И он станет «запущенным», когда сообщение будет опубликовано в очереди.
Как может мой потребитель использовать 0%, когда хотя бы один потребитель определенно усердно работает.
То же, что и состояние очереди, из официального объяснения, consumer utilisation
слишком низкое значение:
- Было больше потребителей
- Потребители были быстрее
- Потребители было более высокое число предварительных выборок
В вашей ситуации prefetch_count = 0
означает отсутствие ограничений на предварительную выборку, поэтому она слишком велика. И Messages.total = Messages.unacked = 78
означает, что ваш потребитель слишком медленный, есть два много сообщений, обработанных потребителем.
Так что, если ваша скорость сообщений недостаточно велика, поле state
и consumer utilisation
очереди бесполезен.
Если бы я увидел большую очередь и хотел бы добавить больше потребителей, добавленные потребители ничего не будут делать, пока в очередь не будет добавлено больше элементов.
Потому что эти неупакованные сообщения уже были предварительно выбраны существующими потребителями, они не будут использованы новыми потребителями, если вы не requeue
неупакованные сообщения.