Ich versuche Sellerie und Redis-Warteschlange zu verwenden, um eine Aufgabe für meine Django App durchzuführen. Supervisord ist auf dem Host über apt-get
installiert, während Sellerie in einem bestimmten virtualenv auf meinem System, installiert über `pip.Running Supervisord vom Host, Sellerie von einer Virtualenv (Django App)
Als Ergebnis kann ich nicht scheinen, die celery
Befehl über Supervisord zu laufen. Wenn ich es von innerhalb des virtualenv laufe, funktioniert es gut, außerhalb davon ist es nicht. Wie bekomme ich es unter meiner aktuellen Einrichtung laufen? Ist die Lösung einfach zu installieren celery
über apt-get, anstatt innerhalb der virtualenv? Bitte beraten.
Mein celery.conf innen /etc/supervisor/conf.d ist:
[program:celery]
command=/home/mhb11/.virtualenvs/myenv/local/lib/python2.7/site-packages/celery/bin/celery -A /etc/supervisor/conf.d/celery.conf -l info
directory = /home/mhb11/somefolder/myproject
environment=PATH="/home/mhb11/.virtualenvs/myenv/bin",VIRTUAL_ENV="/home/mhb11/.virtualenvs/myenv",PYTHONPATH="/home/mhb11/.virtualenvs/myenv/lib/python2.7:/home/mhb11/.virtualenvs/myenv/lib/python2.7/site-packages"
user=mhb11
numprocs=1
stdout_logfile = /etc/supervisor/logs/celery-worker.log
stderr_logfile = /etc/supervisor/logs/celery-worker.log
autostart = true
autorestart = true
startsecs=10
stopwaitsecs = 600
killasgroup = true
priority = 998
Und die Ordnerstruktur für meine Django-Projekt ist:
/home/mhb11/somefolder/myproject
├── myproject
│ ├── celery.py # The Celery app file
│ ├── __init__.py # The project module file (modified)
│ ├── settings.py # Including Celery settings
│ ├── urls.py
│ └── wsgi.py
├── manage.py
├── celerybeat-schedule
└── myapp
├── __init__.py
├── models.py
├── tasks.py # File containing tasks for this app
├── tests.py
└── views.py
Wenn ich tun status
check via supervisorctl, bekomme ich einen FATAL Fehler auf der command
Ich versuche in sellery.conf zu laufen. Hilfe!
p.s. Beachten Sie, dass der Benutzer mhb11
keine Root-Rechte hat, falls es darauf ankommt. Außerdem ist /etc/supervisor/logs/celery-worker.log
leer. Und innerhalb supervisord.log
der relevante Fehler, den ich sehe, ist INFO spawnerr: can't find command '/home/mhb11/.virtualenvs/redditpk/local/lib/python2.7/site-packages/celery/bin/celery'
.
Was passiert, wenn Sie '/home/mhb11/.virtualenvs/myenv/local/lib/python2.7/site-packages/sellery/bin/celery-A/etc/supervisor/conf.d/celery.conf ausführen -l info' vom Terminal? –
Was hat '/ etc/supervisor/logs/sellery-worker.log'? Was hat '/ var/log/supervisord.log' oder'/var/log/supervisor/supervisord.log'? –
@MuhammadTahir: '/ etc/supervisor/logs/sellerie-worker.log' ist leer. Innerhalb 'supervisord.log' ist der relevante Fehler, den ich sehe,' INFO spawnerr: kann Befehl nicht finden '/home/mhb11/.virtualenvs/redditpk/local/lib/python2.7/site-packages/sellery/bin/cellery' '. –