Python 芹菜多队列设置不接收来自django的任务
我正在使用以下命令运行我的工作人员: 芹菜-myapp多起点4-l调试-Q1:3队列1,队列2-Q:4队列3 工人们一开始干得很好,所以当我跑步时 芹菜检查活动队列 队列似乎已分配 然后,我使用以下代码从django应用程序启动任务:Python 芹菜多队列设置不接收来自django的任务,python,django,rabbitmq,celery,django-celery,Python,Django,Rabbitmq,Celery,Django Celery,我正在使用以下命令运行我的工作人员: 芹菜-myapp多起点4-l调试-Q1:3队列1,队列2-Q:4队列3 工人们一开始干得很好,所以当我跑步时 芹菜检查活动队列 队列似乎已分配 然后,我使用以下代码从django应用程序启动任务: result = chain(task1.s(**kwargs).set(queue='queue1'),task2.s(**kwargs).set(queue='queue2'))() 我使用result.parent解析result变量以获取所有任务ID,并
result = chain(task1.s(**kwargs).set(queue='queue1'),task2.s(**kwargs).set(queue='queue2'))()
我使用result.parent解析result变量以获取所有任务ID,并将它们记录到数据库中以供进一步检查。当我发布
task = AsyncResult(task.id)
task.status
我明白了
“待定”
对于每一项任务,我都从我的链条开始。芹菜日志似乎没有收到任何任务。但是当我发布
celery purge
具有以下命令的命令
yes
我收到消息说我的任务实际上已从1个队列中删除
从此处开始,已删除任务的AsyncResult.status将继续显示为“挂起”,并且任务将永远不会启动。
我使用rabbitmq服务器作为所有默认配置的代理。我的芹菜配置是默认的。这真的很奇怪,但在另一个环境中,相同的代码和命令会产生其他结果:工作人员也会启动,但他们确实会收到非常相同的任务,并在没有任何问题的情况下执行它们。请考虑一下这里可能有什么问题。
p、 当我以另一种方式开始工作时:
celery -A myapp worker -Q queue1,queue2,queue3 -l debug
我仍然无法执行我的任务。
当我修改链以启动任务并添加
.set(queue='queue1')
或队列2或队列3
p、 附言:
我所有的任务都是用
@shared_task
装饰师
是否至少有一种方法可以查看我可以通过芹菜清除来删除的任务正在队列中等待,以及它们正在等待的队列名称是什么?芹菜默认设置应该涵盖您的情况,因此唯一的可能是您已经以静音队列的方式定义了以下一些选项,在这种情况下考虑评论: 芹菜 芹菜 芹菜交换 芹菜\默认\路由\密钥 芹菜\默认\路由\密钥 至于您的问题,我想这不是完整的答案,但是您可以列出RabbitMQ中的所有活动队列 使用芹菜,来自: 使用RabbitMQ,从:
celery -A proj inspect active
rabbitmqadmin list queues vhost name node messages message_stats.publish_details.rate