所以我在带有集群rabbitmq后端的多台服务器上运行芹菜。最近,我对 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,并删除并恢复了集群。我猜我需要恢复预先存在的绑定,但我不知道如何从 rabbitmqctl 或 celery 中恢复。如果这不起作用,我的芹菜任务根本不起作用。