django/Sellerie - Sellerie-status: Fehler: Keine Knoten, antwortete innerhalb von Zeit-Einschränkung
Ich versuche zu implementieren ein einfaches Beispiel für die Sellerie in meinem Produktions-server habe ich folgte dem tutorial, in dem Sellerie website über das ausführen von Sellerie als daemon http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html#daemonizing, und ich habe die config-Datei in /etc/default/celeryd
1 # Name der Knoten zu starten 2 # hier haben wir einen einzelnen Knoten 3 CELERYD_NODES="w1" 4 # oder wir haben drei Knoten: 5 #CELERYD_NODES="w1 w2 w3" 6 7 # Wo chdir am start. 8 CELERYD_CHDIR="/home/audiwime/cidec_sw" 9 10 # Python-interpreter von der Umwelt. 11 ENV_PYTHON="/usr/bin/python26" 12 13 # Wie zu rufen "manage.py celeryd_multi" 14 CELERYD_MULTI="$ENV_PYTHON $CELERYD_CHDIR/manage.py celeryd_multi" 15 16 # # Wie zu rufen "manage.py celeryctl" 17 CELERYCTL="$ENV_PYTHON $CELERYD_CHDIR/manage.py celeryctl" 18 19 # Zusätzliche Argumente an celeryd 20 CELERYD_OPTS="--time-limit=300 --concurrency=8" 21 22 # Name der Sellerie config-Modul. 23 CELERY_CONFIG_MODULE="celeryconfig" 24 25 # %n ersetzt werden, mit dem nodename. 26 CELERYD_LOG_FILE="/var/log/Sellerie/%n".log" 27 CELERYD_PID_FILE="/var/run/Sellerie/%n".pid" 28 29 # Arbeiter laufen sollte als ein normaler Benutzer. 30 CELERYD_USER="audiwime" 31 CELERYD_GROUP="audiwime" 32 33 export DJANGO_SETTINGS_MODULE="cidec_sw.Einstellungen"
aber wenn ich
Sellerie status
in der Klemme, bekam ich diese Antwort:
Fehler: Keine Knoten, antwortete innerhalb von Zeit-Einschränkung
Kann ich neu starten, Sellerie über die celeryd script in https://github.com/celery/celery/tree/3.0/extra/generic-init.d/
/etc/init.d/celeryd neu starten celeryd-multi v3.0.12 (Chiastic Slide) > w1.one.cloudwime.com: DOWN > Neustart-Knoten w1.one.cloudwime.com: OK
Kann ich
python26 manage.py celeryd -l info
und meine Aufgaben in django gut laufen, aber wenn ich ließ der Dämon seine Arbeit tun, die ich nicht bekommen keine Ergebnisse, nicht einmal Fehler in /var/log/Sellerie/w1.melden Sie
Ich weiß, dass meine Aufgabe wurde registriert, weil ich habe diese
from celery import current_app
def call_celery_delay(request):
print current_app.tasks
run.delay(request.GET['age'])
return HttpResponse(content="celery task set",content_type="text/html")
bekommen und habe ein Wörterbuch, in welches meine Aufgabe erscheinen
{'celery.chain': <@task: celery.chain>, 'celery.chunks': <@task: celery.chunks>, 'celery.chord': <@task: celery.chord>, 'tasks.add2': <@task: tasks.add2>, 'celery.chord_unlock': <@task: celery.chord_unlock>, **'tareas.tasks.run': <@task: tareas.tasks.run>**, 'tareas.tasks.add': <@task: tareas.tasks.add>, 'tareas.tasks.test_two_minute': <@task: tareas.tasks.test_two_minute>, 'celery.backend_cleanup': <@task: celery.backend_cleanup>, 'celery.map': <@task: celery.map>, 'celery.group': <@task: celery.group>, 'tareas.tasks.test_one_minute': <@task: tareas.tasks.test_one_minute>, 'celery.starmap': <@task: celery.starmap>}
aber außer, dass ich bekommen, sonst nichts, kein Ergebnis, meine Aufgabe, keine Fehler in den logs, nichts.
Kann mir jemand sagen, was kann falsch sein?
Du bist meine einzige Hoffnung...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie den folgenden Befehl aus, um das problem zu finden :
Üblicherweise geschieht dies, weil es Probleme in Ihrer source-Projekt(Erlaubnis Fragen, syntax error usw.)
Wie bereits in Sellerie docs:-
Glück
Quelle: Sellerie Docs
sein, weil der Sellerie-daemon kann nicht gestartet werden. Dies ist ein Grund. So freundlich starten Sie es mit python manage.py celeryd --loglevel=INFO
Ich mein problem gelöst, es war eine sehr einfache Lösung, es war aber auch ein komischer Kauz:
Was ich Tat, war:
Ich hatte dies in dieser Reihenfolge, andere Art, wie ich bekommen würde, einen hässlichen Fehler: Keine Knoten, antwortete innerhalb von Zeit-Einschränkung.
celerybeat
undceleryd
. Sie können laufenceleryd -B
, das ist das gleiche. Ich bin immer noch sehr gespannt, wie du an einenservice celeryd
🙂 (P. S. ich bekomme immer noch diesen Fehler)chmod -R 777
auf beide Verzeichnisse, ohne jeden Unterschied. Ich glaube nicht, dass ist das problem sowiesochmod 770
gibt vollen Zugriff auf Benutzer-und Gruppen -, die in diesem Fall Sellerie und celerygroup, beide sind definiert in Sellerie config. Damit der Sellerie-daemon soll, dass Benutzer in dieser Gruppe und auf das Verzeichnis zugreifen, ohne Probleme. Sehr seltsam...