2017-11-09 4 views
1

Ich benutze Django-Sellerie 3.2 und Sellerie 3.1.25. Ich habe unten Einstellungen hinzugefügt -Sellerie Aufgaben sollten in der Warteschlange auf Arbeiter, die verloren gehen

CELERY_TASK_ACKS_LATE = True 
task_reject_on_worker_lost = True 

Die Anwendung führt unter Fehler und wird nicht geladen, wenn ich Sellerie 4.x mit django-Sellerie 3,2

ImportError: No module named vine.five

Schritte verwenden zu reproduzieren

Lösen Sie einige Aufgaben aus, und beziehen Sie ihre PIDs aus Protokollen. Ich töte einen Arbeiter (pid) nach dem Zufallsprinzip mit dem Befehl kill.

erwartetes Verhalten

Die Aufgabe in die Warteschlange zurückkommen soll und nahm von gleichem oder einem anderen Arbeiter auf.

tatsächliches Verhalten

Die Aufgabe verloren zu werden.

Antwort

0

Sie können django-celery nicht mit neueren Sellerieversionen verwenden.

Previous versions of Celery required a separate library to work with Django, but since 3.1 this is no longer the case. Django is supported out of the box now so this document only contains a basic way to integrate Celery and Django.

Wenn Sellerie 4.x verwenden, wie Sie erwähnt, können Sie hier (http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html) lesen, wie mit Django Sellerie zu verwenden.

+0

Gibt es eine Arbeit um Django-Sellerie passieren, und Sellery 4.x Funktionen für eine Django-Anwendung verwenden? –

+0

Wie das Dokument in seinen ersten zwei Sätzen sagt. 'Vorherige Versionen von Sellery benötigten eine separate Bibliothek, um mit Django zu arbeiten, aber seit 3.1 ist dies nicht mehr der Fall. Django wird jetzt sofort unterstützt, daher enthält dieses Dokument nur eine grundlegende Methode zur Integration von Sellerie und Django. "Der erste Schritt ist also, Django-Sellerie zu entfernen und dann eventuelle Konfigurationsfehler zu beheben. – Jann

Verwandte Themen