rabbitmq - 如何修复这个rabbitmq/celery错误?

标签 rabbitmq celery

所以我在具有集群rabbitmq后端的多台服务器上运行celery。最近,我对 celery 所做的任何事情都开始无限期地挂起,检查rabbitmq 的日志为我提供了这个晦涩的错误消息:

=ERROR REPORT==== 20-Mar-2013::23:52:25 ===
connection <0.15823.3>, channel 1 - soft error:
{amqp_error,not_found,
        "no binding i-69995906 between exchange 'i-69995906' in vhost 'celery' and queue 'i-69995906' in vhost 'celery'",
        'queue.bind'}

运行rabbitmqctl list_bindings给我这个:

# rabbitmqctl list_bindings -p celery
Listing bindings ...
        exchange    celery  queue   celery  []
celery  exchange    celery  queue   celery  []
...done.

我需要做什么才能消除错误?我已经重新启动了Rabbitmq,重新安装了Rabbitmq,并删除并恢复了集群。我猜我需要恢复预先存在的绑定(bind),但我不知道如何从rabbitmqctl或celery恢复。如果这不起作用,我的 celery 任务就根本不起作用。

最佳答案

谢谢你的提问。我最终到达了完全相同的地方。

我能够通过删除虚拟主机并重新创建它来纠正此问题

rabbitmqctl delete_vhost celery
rabbitmqctl add_vhost celery
rabbitmqctl set_permissions -p celery <user> ".*" ".*" ".*"

关于rabbitmq - 如何修复这个rabbitmq/celery错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537129/

相关文章:

java - 如何通过 Spring 将消息重新排队到 Rabbit MQ 队列的后端

celery - 克隆 celery 链

python - 如何从 Celery 获取发起任务执行的队列

security - 通过 SSL 的 RabbitMQ

python - 文件下载后立即处理

java - 如何收听动态创建的队列?

rabbitmq - MassTransit 丢失消息 - Rabbit MQ - 当发布者和消费者端点名称相同时,

python celery : Update django model after state change

python - 在 Celery/Django : cannot find reference 'control' in celery. 任务.control

Celery:限制内存使用(大量 django 安装)