Проблема подключения цветка сельдерея с --persistent True
Я запускал celery flower 1.0.0 как службу systemd с --persistent=True
. И при каждом перезапуске происходил сбой с ошибкой SSLV3_ALERT_HANDSHAKE_FAILURE
, которая была глубокой из-за сообщения об ошибке db type could not be determined
.
После удаления --persisten=True
раньше он прекрасно работал при каждом перезапуске, но потом я не смог заставить базу данных цветка сельдерея быть нетронутой после каждого перезапуска.
Вот что сработало для меня.
Во-первых, это SSLV3_ALERT_HANDSHAKE_FAILURE
произошло из-за моей неправильной конфигурации часовой + ворон.
Во-вторых, реальная ошибка db type could not be determined
возникала из-за того, что новый перезапущенный сервис не мог соединиться с базой данных старого цветочного сервиса. Я не смог выяснить, почему это так, но очень полезный вопрос на GitHub находится здесь.
В конце концов, я попробовал указать флаг --db
, чтобы указать местоположение и имя моей базы данных цветов. Это решило проблему. Теперь служба смогла успешно перезапуститься даже при --persistent=True
.
Позже я обнаружил, что база данных по умолчанию, которую создавал flower, принадлежала основному пользователю хоста. Но после указания флага --db
в служебном файле, база данных стала принадлежать пользователю celery. Это было настоящим решением для меня.
Полезное замечание: Если вы запускаете flower как службу systemd, то убедитесь, что файл базы данных flower принадлежит пользователю celery. А еще лучше всегда использовать флаг --db
, который избавит вас от этой проблемы.