entfernt Ich verwende Django 1.6
, , celery 3.1.19
.Sellerie Aufgaben mit eta werden von RabbitMQ
Es gibt eine periodische Aufgabe, die alle 30 Sekunden ausgeführt wird und 200 Aufgaben mit gegebenen eta
Parameter erstellt. Nachdem ich den Selleriearbeiter laufen lasse, wird langsam die Warteschlange in RabbitMQ erstellt und ich sehe rund 1200 geplante Aufgaben, die darauf warten, gefeuert zu werden. Dann, starte ich den Sellerie-Arbeiter neu und alle wartenden 1200 geplanten Aufgaben werden von RabbitMQ entfernt.
Wie schaffe ich Aufgaben: my_task.apply_async((arg1, arg2), eta=my_object.time_in_future)
Ich betreibe den Arbeiter wie folgt aus: python manage.py celery worker -Q my_tasks_1 -A my_app -l
CELERY_ACKS_LATE
ist auf True
in Django-Einstellungen. Ich konnte keinen möglichen Grund finden.
Sollte ich den Arbeiter mit einer anderen Konfiguration/Flag/Parameter ausführen? Irgendeine Idee?
1) Sind Sie sicher, dass Sie nur den Arbeiter nicht den ganzen Kaninchen-Server neu starten? 2) Vielleicht haben Sie einige Aufgaben 'ttl' Zeit und es wird einfach nach dieser Zeit entfernt? – matino
1) Ich bin sicher, dass nur Arbeiter neu gestartet werden. 2) In keiner Konfiguration ist ttl auf task gesetzt. Es ist was Standard ist. Aber wenn ich die Arbeiter offen lasse, bleiben die Aufgaben in der Warteschlange. –
Können Sie das Debugprotokoll freigeben? –