连接问题 - Celery/Django
漫长的夜晚……我无法让我的第二个Celery/RabbitMQ设置正常运行。
第一步
sudo rabbitmq-server
运行结果:正常!
第二步
python manage.py celeryd -l info
错误信息:[2010-12-28 03:38:24,690: ERROR/MainProcess] CarrotListener: 连接错误:套接字关闭。28秒后重试……
- 添加了rabbitmq用户和虚拟主机
- 更新了Django的settings.py文件
补充:
我觉得可能是因为我用.deb文件安装的,而不是用apt-get。
在卸载了deb版本并安装了apt-get版本后,我得到了这个:
invoke-rc.d: initscript rabbitmq-server, action "start" failed.
dpkg: error processing rabbitmq-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
rabbitmq-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
我的解决方案:
apt-get --purge remove rabbitmq-server
apt-get install rabbitmq-server
……没什么好说的……也许我需要睡觉了 :)
有没有人能给我一些调试的建议? :|
2 个回答
1
我在安装rabbitmq-server的时候遇到了这个问题,当时我正在安装chef。
对我来说,解决这个问题的方法如下。
$ sudo vim /etc/hosts
然后添加。
127.0.0.1 <hostname>
这里是你的主机名,如果不确定主机名,可以运行以下命令:
$ hostname
结果就是你的主机名。只需将它添加到你的/etc/hosts文件中,然后运行:
$ sudo service rabbitmq-server start
然后它就启动了。:)
这个方法对我有效。感谢你花时间阅读。:)
3
检查一下你正在使用的RabbitMQ的不同版本,新版本有一些新功能,可能和Celery不兼容。我这边用的是最新的2.3.1版本,是通过RabbitMQ的deb包安装的,这个版本运行得还不错,除非你需要用到SSL,这时候就得安装一个更新的Erlang/OTP版本,这个过程比较麻烦。
另外,建议你使用初始化脚本来启动消息代理:
sudo /etc/init.d/rabbitmq-server start
如果你是通过初始化脚本启动消息代理的,遇到问题时可以查看消息代理的错误日志:
sudo tail -f /var/log/rabbit@<your-local-host>.log
希望这些信息对你有帮助。