Celery Flower中的Worker始终离线
我在我的服务器上运行着 Celery
和 Flower,任务运行得很好,也能在 Flower 的界面上正确注册和更新,方便我监控。不过,工人的状态总是显示为 Offline
,无论我重启工人还是重启 Flower 本身,状态都没有改变。而且我的日志文件(通过 --log_file_prefix
选项指定的)是空的,什么错误信息都没有。
我唯一能看到的就是 Chrome 开发者工具显示了一个 Websocket 握手错误,具体如下所示:
还有一条消息 CAUTION: Provitional headers are shown.
我了解到,要让 Websocket 握手成功,我的服务器需要响应 Upgrade: websocket
和 Connection: upgrade
这两个头信息。我使用的是 Apache,所以我尝试在 /etc/apache2/sites-enabled/mysite.conf
中添加以下内容:
Header set Upgrade "websocket"
Header set Connection "upgrade"
但是没有成功。
有没有人知道这个错误的原因?如果需要更多信息,请告诉我。
谢谢!!
2 个回答
1
在使用 celery 4.0.2 和 redis 2.10.5 的时候,遇到了同样的问题。
通过更新 kombu 和 redis 来解决这个问题。
pip install kombu --upgrade
pip install redis --upgrade
2
Gerard,
检查一下你的kombu版本。
我之前遇到过类似的问题,通过升级kombu到3.0.21版本(发布于2014年7月7日)解决了。
你可以试试这个命令:pip install kombu==3.0.21
我不确定这能否解决你的问题,但你可以试试看。