为什么我的监督django芹菜过程不接受任务?

时间:2013-10-09 18:25:57

标签: rabbitmq celery amqp django-celery supervisord

我们有一个django-celery流程,现在有5个工作流程在生产中运行。它正确地接收和运行任务。这些进程运行插入两个队列的任务:livecelery

用于运行芹菜过程的命令大致是:

manage.py celeryd -E --loglevel=WARNING --concurrency=5 \
         --settings=django_settings.production_celery -Q live,celery

我现在刚刚构建了一个新系统,该系统应该在名为foobar的不同队列上处理不同的任务。这些芹菜过程使用大致类似的命令运行:

manage.py celeryd -E --loglevel=WARNING --concurrency=5 \
         --settings=django_settings.production_foobar -Q foobar

但是,当我尝试使用my_task.apply_async(queue='foobar')在新队列中运行任务时,结果对象将无限期地保持在PENDING状态。

通过记录,我确定foobar工作人员从未接收过任务。所以现在我正在尝试调试任务消息丢失的位置。

(我们使用RabbitMQ作为我们的AMQP消息代理。)

如何确定芹菜队列的当前内容?我可以直接检查RabbitMQ队列的内容吗?

0 个答案:

没有答案