Ich benutze Sellerie und Django-Sellerie. Ich habe eine regelmäßige Aufgabe definiert, die ich testen möchte. Ist es möglich, die periodische Aufgabe manuell über die Shell auszuführen, damit ich die Konsolenausgabe anzeigen kann?
python
django
celery
django-celery
celery-task
Mridang Agarwalla
quelle
quelle
manage.py
Skript erfordert, das Django in allen Django-Projektverzeichnissen generiert.) Entschuldigung.Wenn Sie damit meinen, dass Sie nur eine Aufgabe auslösen, wenn die Bedingung nicht erfüllt ist, z. B. die periodische Zeit nicht erfüllt. Sie können dies in zwei Schritten tun.
1. Holen Sie sich Ihre Aufgaben-ID.
Sie können dies durch Eingabe tun.
Sie werden so etwas sehen
app.tasks.update_something
. Wenn nichts, ist es wahrscheinlich, dasscelery
nicht gestartet wurde. Lass es einfach laufen.2. Führen Sie die Aufgabe mit aus
celery call
Für weitere Details geben Sie einfach ein
quelle
celery -A yourapp call app.tasks.update_something --kwargs='{"key": value,...}'
inspect
es großartig ist, ist es leider nur für "RabbitMQ (AMQP) - und Redis-Transporte" verfügbar. (nicht andere wiefilesystem
zum Beispiel)Ich denke, Sie müssen zwei Shells öffnen: eine zum Ausführen von Aufgaben aus der Python / Django-Shell und eine zum Ausführen von
celery worker
(python manage.py celery worker
). Und wie in der vorherigen Antwort angegeben, können Sie Aufgaben mitapply()
oder ausführenapply_async()
Ich habe die Antwort so bearbeitet, dass Sie keinen veralteten Befehl verwenden.
quelle