ich eine django app haben, in dem es eine Sellerie-Funktionalität hat, so kann ich kann den Sellerie erfolgreich wie unterSellerie als Daemon mit Supervisor läuft nicht funktioniert
celery -A tasks worker --loglevel=info
aber als bekannte Tatsache laufen, dass wir müssen es als Daemon laufen und so habe ich die unten celery.conf
Datei in /etc/supervisor/conf.d/
Ordner geschrieben
; ==================================
; celery worker supervisor example
; ==================================
[program:celery]
; Set full path to celery program if using virtualenv
command=/root/Envs/proj/bin/celery -A app.tasks worker --loglevel=info
user=root
environment=C_FORCE_ROOT="yes"
environment=HOME="/root",USER="root"
directory=/root/apps/proj/structure
numprocs=1
stdout_logfile=/var/log/celery/worker.log
stderr_logfile=/var/log/celery/worker.log
autostart=true
autorestart=true
startsecs=10
; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600
; When resorting to send SIGKILL to the program to terminate it
; send SIGKILL to its whole process group instead,
; taking care of its children as well.
killasgroup=true
; if rabbitmq is supervised, set its priority higher
; so it starts first
priority=998
aber als ich versuchte, die Supervisor wie supervisorctl reread
und supervisorctl update
i wurde die Botschaft vonzu aktualisieren
celery FATAL Exited too quickly (process log may have details)
Also ging ich zu worker.log
Datei und die Fehlermeldung wie unten
Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!
If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).
User information: uid=0 euid=0 gid=0 egid=0
war es so, warum gesehen beschwerte sich über C_FORCE_ROOT
obwohl wir es als Umgebungsvariable innerhalb Supervisor conf Datei gesetzt hatte? Was mache ich falsch in der obigen Conf-Datei?
Laufen Sie nicht als root - es sollte nicht notwendig sein. (Verwenden Sie dies mit Django - laufen Sie als der gleiche Benutzer wie dort.) –
yeah ok, wenn ich die Zeile 'environment = HOME ="/root ", USER =" root "entfernte' es funktionierte gut –
Ich hatte das Problem mit AWS Elasticbeanstalk, mit user = ec2-user behoben es für mich –