Donnerstag, April 9, 2020

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…

3 Kommentare

  1. 1

    Verwenden Sie den folgenden Befehl aus, um das problem zu finden :

    C_FAKEFORK=1 sh -x /etc/init.d/celeryd start

    Üblicherweise geschieht dies, weil es Probleme in Ihrer source-Projekt(Erlaubnis Fragen, syntax error usw.)

    Wie bereits in Sellerie docs:-

    Wenn der Arbeiter beginnt mit „OK“ und beendet fast unmittelbar danach
    und es wird nichts in die log-Datei, dann es ist wahrscheinlich ein Fehler
    aber als die Dämonen standard-Ausgänge sind bereits geschlossen, Sie werden nicht
    in der Lage, Sie zu sehen überall. Für diese situation können Sie mithilfe der
    C_FAKEFORK Umgebungsvariable zu überspringen daemonization Schritt

    Glück

    Quelle: Sellerie Docs

  2. 0

    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

  3. -2

    Ich mein problem gelöst, es war eine sehr einfache Lösung, es war aber auch ein komischer Kauz:
    Was ich Tat, war:

    $ /etc/init.d/celerybeat restart
    $ /etc/init.d/celeryd restart
    $ service celeryd restart

    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.

    • Ich glaube nicht, dass Sie brauchen beide celerybeat und celeryd. Sie können laufen celeryd -B, das ist das gleiche. Ich bin immer noch sehr gespannt, wie du an einen service celeryd 🙂 (P. S. ich bekomme immer noch diesen Fehler)
    • diese Fehlermeldung kommt hauptsächlich wenn alle Dateiberechtigungen sind nicht korrekt
    • Vielen Dank für Ihre Antwort. Können Sie bitte so freundlich und haben einen Blick auf diese einfügen: pastebin.com/e3GK4eax Dies ist, wie ich haben set-up die Berechtigungen, sehen Sie alles, was offensichtlich nicht in Ordnung?
    • die chmod 770 Befehl gibt 0 Berechtigungen für die anderen Benutzer, die Zugriff auf den computer. d.h. deine user Sellerie hat keinen Zugriff auf die Dateien. Ich denke, dass u sollten versuchen, mit chmod 777. Ich weiß, das kann eine Sicherheitslücke, aber das ist wahrscheinlich Ihr Problem. U kann die Berechtigungen ändern, sobald Sie das Problem.
    • Ich habe jetzt versucht chmod -R 777 auf beide Verzeichnisse, ohne jeden Unterschied. Ich glaube nicht, dass ist das problem sowieso chmod 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…
    • Ich weiß ist ein bisschen spät, aber haben Sie versucht mit python manage.py celeryd -l INFO ? Es könnte ein Fehler in den python-Dateien
    • Oh mein Gott, ich habe Stunden damit verbracht, jagt diese. Chmod auf mein Arbeits-Verzeichnis behoben.

Kostenlose Online-Tests