Я столкнулся с необходимостью установить celery в качестве демона для моего django проекта на сервере Ubuntu 16.04, при этом я столкнулся с несколькими недоразумениями, которые я опишу в своем вопросе. Я знаю, что по заданным правилам стека следует задавать только один четкий вопрос, но я задам несколько в одном вопросе, потому что первый вопрос возник из второго и т. Д. c.
Для настройки сельдерея в качестве демона я решил использовать SystemD
. В документации Демонизация сельдерея есть руководство, но оно не так понятно, как я хочу, возможно, потому что я новичок. Мой первый вопрос: я должен установить отдельно сельдерей и сельдерея? Вот документация, приведенная в качестве примера конфигурации
[Unit]
Description=Celery Service
After=network.target
[Service]
Type=forking
User=celery
Group=celery
EnvironmentFile=/etc/conf.d/celery
WorkingDirectory=/opt/celery
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \ -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \ --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \ --pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \ -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \ --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
[Install] WantedBy=multi-user.target
Все мои недоразумения касаются этого фрагмента кода, и следующий вопрос:
Что user
и group
Я должен указать в Сервисной части конфигурации? в приведенном выше примере документации celery указан для пользователя и группы, но когда я проверил пользователей и группы в своей Ubuntu, у меня нет пользователя и группы celery, если я должен создать такого пользователя и группу, если ответ «да», какие права я должен предоставить для пользователя celery и группа? Или я должен указать в настройках пользователя и группы моего пользователя Ubuntu, под которым я работаю на сервере?
Следующий вопрос относится ко всем переменным, которые использовались для указания различных частей настроек, например, в приведенном выше примере конфигурации в ExecStart
настройки имеют несколько переменных
${CELERY_BIN}
${CELERYD_NODES}
${CELERY_APP}
${CELERYD_PID_FILE}
${CELERYD_LOG_FILE}
${CELERYD_LOG_LEVEL}
${CELERYD_OPTS}'
Где я должен указать эти переменные Я думаю, что это должно быть в файле django settings.py
, но приведенная выше документация предоставляет пример, который смутил меня, может быть, вы можете подумать, почему я не могу попробовать настроить эти переменные в settings.py вместо того, чтобы спрашивать здесь, но я не могу чтобы проверить это, потому что у меня нет понимания вопроса о пользователе и группе
Следующий вопрос об этой настройке
EnvironmentFile=/etc/conf.d/celery
Что мне следует указать здесь, потому что у меня нет этого файла в моей системе ? Должен ли я создать это? Кажется, это настройки по умолчанию для сельдерея, но я использую django и все связанные настройки для сельдерея, которые я указал в моем файле django project settings.py
Кто-нибудь может мне помочь? Заранее благодарен