1

我们已经有一个 django-celery 进程,其中有 5 个工作进程在生产中运行了很长时间。它正确地接收和运行任务。这些进程运行插入到两个队列中的任务:livecelery

用于运行 celery 进程的命令大致是:

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

我现在刚刚构建了一个新系统,该系统应该处理不同队列上的不同任务,称为foobar. 这些 celery 进程使用大致如下的命令运行:

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 队列的内容吗?

4

0 回答 0