Поиск того, какая задача пошла в какую очередь - PullRequest
0 голосов
/ 19 июля 2011

Я использую RabbitMQ с Celery и настроил некоторые пользовательские настройки маршрутизации для задачи. Задание определенного типа отправляется в одну очередь, а все остальные задачи - в другую. Теперь я хочу убедиться, что он работает или нет.

Для этого я хочу проверить, какие задачи отправляются в какую очередь. К сожалению, я не нашел ничего, что могло бы помочь мне в этом. Монитор celeryev просто предоставляет информацию о том, какие задачи были получены и каков их статус завершения. rabbitmqctl дает мне информацию только о текущих выполняющихся и ожидающих задачах, поэтому я не могу видеть, в какую очередь пошла моя намеченная задача.

Может ли кто-нибудь помочь мне с этим?

1 Ответ

1 голос
/ 19 июля 2011

Обычно вы не можете проверять сообщения в очереди с помощью AMQP (хотя не уверен насчет Celery).

Если вам просто нужно это как разовый тест, возможно, самый простой способ - написать быструю программу на Python, которая получает все сообщения из очередей и распечатывает их.

Используя py-ampqlib , это должно сделать это:

from amqplib import client_0_8 as amqp

conn = amqp.Connection(host="localhost:5672", userid="guest", password="guest", virtual_host="/", insist=False)
chan = conn.channel()

queue_name = "the_queue"

print "Draining", queue_name

while True:
    msg = chan.basic_get(queue_name)
    if msg is None:
        break
    print msg.body

print "All done"

Если вам нужна дополнительная помощь, вам следует обратиться по адресу RabbitMQ. Обсудить список рассылки. Разработчики RabbitMQ делают все возможное, чтобы ответить на все вопросы, размещенные там, и автор Celery также читает его.

...