In meinem Django-Projekt verwende ich Sellerie und Rabbitmq, um Aufgaben im Hintergrund auszuführen. Ich benutze Sellerie Beat Scheduler, um periodische Aufgaben auszuführen. Wie kann ich überprüfen, ob Sellerie-Beat programmgesteuert läuft?Prüfe, ob Sellerie schlägt und läuft
Antwort
Sie können Scheduler Lauf überprüfen oder nicht durch den folgenden Befehl
python manage.py celery worker --beat
Sind Sie Emporkömmling oder supervison oder etwas anderes nutzen Sellerie Arbeiter + Sellerie schlagen als Hintergrund-Tasks ausführen? In der Produktion sollten Sie einen von ihnen verwenden, um Sellerie Arbeiter + Sellerie im Hintergrund zu laufen.
Einfachste Art zu überprüfen, Sellerie Beat läuft: ps aux | grep -i '[c]elerybeat'
. Wenn Sie Textzeichenfolge mit pid
erhalten, wird es ausgeführt. Sie können auch die Ausgabe dieses Befehls hübscher machen: ps aux | grep -i '[c]elerybeat' | awk '{print $2}'
. Wenn Sie Nummer bekommen - es funktioniert, wenn Sie nichts bekommen - es funktioniert nicht.
Auch können Sie Sellerie Arbeiter Status überprüfen: celery -A projectname status
.
Wenn Sie in fortgeschrittenen Sellerie-Monitoring interessiert sind, können Sie offizielle Dokumentation monitoring Leitfaden lesen.
Das ist jedoch nicht programmatisch – guival
Wenn Sie Sellerie nach dem Tutorial des celery doc daemonisierte haben, zu überprüfen, ob es oder nicht läuft, kann durch
sudo /etc/init.d/celeryd status
sudo /etc/init.d/celerybeat status
Sie können die Rückgabe solcher Befehle in einem Python-Modul verwenden, durchgeführt werden.
Sie können wahrscheinlich supervisor nachschlagen. Es bietet eine celerybeat conf, die alles in Bezug auf Beat in /var/log/celery/beat.log
protokolliert.
Eine andere Möglichkeit, dies zu umgehen, ist die Verwendung Flower. Sie können es für Ihren Server einrichten (stellen Sie sicher, dass es passwortgeschützt ist), es wird etwas leichter in der GUI zu erkennen, welche Aufgaben in der Warteschlange stehen und wann sie in die Warteschlange gestellt werden, um zu überprüfen, ob Ihr Beat gut läuft.
- 1. Prüfe, ob Koch als Chef-Solo läuft
- 2. Prüfe, ob Steam läuft und der Benutzer eingeloggt ist
- 3. Prüfe, ob der Dienst läuft und nicht richtig funktioniert
- 4. Wie man überprüft, ob Sellerie/Supervisor mit Python läuft
- 5. Sellerie läuft als Daemon stoppt
- 6. Prüfe, ob Spieler sneakningt - modPE
- 7. Prüfe, ob ein Spielobjekt in Unity
- 8. Prüfe, ob struct eine gegebene Schnittstelle implementiert
- 9. Prüfe, ob ein Benutzer isAdmin true hat
- 10. Prüfe, ob und Interceptor auf einen Kontext angewendet wurde
- 11. Prüfe, ob Youtube und Vimeo-Clips gültig sind
- 12. Vue.js: Prüfe, ob eine Komponente existiert
- 13. Prüfe, ob Iterable eine Karte ist
- 14. Sellerie und Signale
- 15. Prüfe, ob editText des Dezimalzahl-Typs leer ist
- 16. Wie überprüfen, ob Sellerie Ergebnis Backend funktioniert
- 17. R: Prüfe, ob eine Spalte mehr als einen Wert hat
- 18. Prüfe, ob eine Ganzzahl in einem Bereich liegt
- 19. Prüfe ich immer, ob das OAuth-Aktualisierungs-Token geändert wurde?
- 20. Amazon s3 boto3: Prüfe, ob der Upload abgeschlossen ist
- 21. Wie prüfe ich, ob ein bestimmter XML-Knoten existiert?
- 22. Erkennen, ob SQL-Server läuft
- 23. Prüfe, ob der Benutzer Administrator/Gamemaster ist [MYSQLI]
- 24. Sellerie als Daemon mit Supervisor läuft nicht funktioniert
- 25. Prüfe, ob ein String einen von mehreren Teilstrings enthält
- 26. Prüfe, ob das Verzeichnis ein Unterverzeichnis eines bestimmten Verzeichnisses ist
- 27. Prüfe, ob ein gegebener Regex mit irgendetwas übereinstimmt
- 28. Überprüfen, ob der Prozess läuft
- 29. Prüfe, ob mindestens ein Eingabefeld in jQuery gefüllt ist.
- 30. Prüfe, ob eine Liste von Objekten in Hashset existiert.
Warum möchten Sie das tun? Möchten Sie überprüfen, bevor Sie eine Aufgabe senden? –
Ein Grund wäre Failover zu starten, wenn Selleriebeat nicht läuft. Es scheint keinen akzeptierten Weg zu geben, dies zu erreichen. –
Wenn ja, dann besser 'supervisord' oder etwas ähnliches zu verwenden. – trinchet