Daemonizing celery с проблемами супервизора (Django Rest Framework)
Я не могу заставить celery работать в production с помощью supervisor. Обычно я использую его в локальной разработке, выполняя команду. Однако, когда я делаю настройку supervisor, он не работает. Читая журналы регистрации, я получаю ошибку:
Unable to load celery application.
The module inp_proj was not found.
Мой файл .conf для супервизора имеет следующий вид:
[program:inp_proj]
directory=/www/[project_directory]/inp_proj
command=/www/[project_directory]/venv/bin/celery -A inp_proj worker --loglevel=INFO
user=jan
numprocs=1
stdout_logfile=/var/log/celery/inp_proj.log
stderr_logfile=/var/log/celery/inp_proj.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=998
вот мой файл celery.py:
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'inp_proj.settings')
app = Celery('inp_proj')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
Он находится внутри каталога проекта и внутри inp_proj.
Я пытался изменить команду celery в созданном конфигурационном файле, добавить путь к окружению в конфигурационный файл супервизора, но, похоже, ничего не работает. Если я вручную активирую venv с помощью
source venv/bin/activate
и затем запустить рабочего вручную, он работает нормально. Но когда используется супервизор, он не работает.