芹菜花连接问题--persistent True

celery flower connection issue with --persistent True

我是 运行 celery flower 1.0.0 作为系统服务 --persistent=True。每次重启都会因错误 SSLV3_ALERT_HANDSHAKE_FAILURE 而失败,这是由于 db type could not be determined 错误消息而导致的。

删除 --persisten=True 后,它过去在每次重启时都能完美运行,但每次重启后我无法让我的芹菜花数据库保持完整。

这是对我有用的方法。

首先,那个SSLV3_ALERT_HANDSHAKE_FAILURE是因为我对sentry + raven的错误配置。

其次,真正的错误db type could not be determined出现是因为新重启的服务无法连接到旧花服务的数据库。我无法找出为什么会这样,但一个非常有用的 GitHub 问题是 here

最后,我尝试指定 --db 标志来指定我的花卉数据库位置和名称。这为我解决了这个问题。现在即使 --persistent=True.

服务也能够成功重启

后来,我发现flower创建的默认数据库是主机主用户所有的。但是在服务文件中指定 --db 标志后,数据库归 celery 用户所有。这对我来说是真正的解决方案。

小贴士:如果你是运行 flower 作为systemd 服务,那么请确保flower 数据库文件归celery 用户所有。或者更好的是始终使用 --db 标志来避免这个问题。