Я развернул приложение Django с использованием Apache2 и боролся с конфигурацией Celery.
1-я попытка:
Я использовал systemd для демонизации сельдерея и сельдерея, как указано в документации по сельдерею .Это была своего рода работа с этой конфигурацией (которая не рекомендуется для производства)
ExecStart=/path/to/celery/bin/ -A proj worker
ExecStart=/path/to/celery/bin/ -A proj beat
Но я не мог заставить работать "официальную" конфигурацию, что-то вроде этого:
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}'
Служба работала, но запланированные задания не выполнялись.
Текущая конфигурация:
Я прочитал эту статью (Периодические задания Celery 4 для среды), в которой рекомендуется использовать супервизор.Это то, что я сделал, и мои файлы конфигурации выглядят так:
[program:projworker]
command=/path/to/celery/bin/-A proj worker -l info
Так что это фактически та же команда, что и неучтенная в документации Celery. (Хотя для обеих конфигураций я правильно настроил dir проекта, пользователя и группу и т. Д.).Однако все идет гладко.
Итак, в конце концов, мой вопрос: это действительно уважает хорошие практики?Согласно этой части документации супервизор обрабатывает демонизацию, но на самом деле я не уверен, что понял это правильно.