Можно ли автоматически запускать celery при загрузке?

Можно ли автоматически запускать celery при загрузке?

У меня есть сервер python на основе django и celery. Каждый раз при перезагрузке компьютера запускается apache2, так что мой сервер работает, НО мне приходится вручную перезапускать celery (переходя в каталог проекта и выполняя "python manage.py celeryd"). Какое правильное решение для производства? Я имею в виду, есть ли возможность запустить celery как демон?

Здесьhttp://github.com/ask/celery/tree/master/contrib/debian/init.d/Я нашел два скрипта, которые, похоже, должны быть в /etc/init.d/, как скрипт apache2, который запускает apache2. Но я поместил их в /etc/init.d/ и, как я вижу, ничего не изменилось.

решение1

Вы можете вручную создать символическую ссылку на скрипты /etc/init.d из /etc/rc5.d/, чтобы они запускались вместе с вашим GUI. И вам понадобится еще один для выключения.

Но у Debian есть более продвинутый (и лучший) метод. Он контролирует то, что связывается из отдельных сценариев инициализации уровней запуска. Именно для этого используется "BEGIN INIT INFO" в разделе комментариев в верхней части этих сценариев.

Если вы действительно используете Debian, вместо того, чтобы просто использовать скрипты с одного из их ресурсов, попробуйте использовать

update-rc.d celerybeat по умолчанию
update-rc.d celeryd по умолчанию

решение2

Celery поставляет образец конфигурации дляруководитель, демон, который заботится о задачах и демонах, связанных с проектом. Debian Unstable уже имеет упакованную версию supervisor. Если вы установите ее, вам нужно будет только изменить пример конфигурации из celery (находится в contrib/supervisor) и поместить его в /etc/supervisor/conf.d/.

решение3

Вы не упомянули, какой дистрибутив вы используете. Это важно знать, поскольку сценарии запуска сильно различаются от дистрибутива к дистрибутиву. Предположим, вы работаете с Redhat/CentOS...

В идеале вам следует найти скрипт init.d. Это лучший вариант, поскольку он также используется для безопасного завершения работы вашего демона, перезагрузки его конфигурации, перезапуска и т. д. Если же вам нужно быстрое и простое решение, просто добавьте " python manage.py celeryd" в конец /etc/rc.localфайла.

Редактировать: По имени пути в вашем примере я вижу, что вы используете Debian. Я не уверен, есть ли в Debian файл /etc/rc.local. Но я оставлю этот ответ на всякий случай, если он есть, или эта информация будет полезна кому-то еще.

Связанный контент