Ich verwende regelmäßige Sellerie Aufgaben mit Django. Früher habe ich die folgende Aufgabe in meiner app/tasks.py Datei haben:Sellerie Beat Queue enthält veraltete Aufgaben
@periodic_task(run_every=timedelta(minutes=2))
def stuff():
...
Aber jetzt diese Aufgabe von meiner app/tasks.py Datei entfernt wurde. Aber ich sehe immer wieder Aufruf diese Aufgabe in meinem Sellerie Protokoll:
[2013-05-21 07:08:37,963: ERROR/MainProcess] Received unregistered task of type u'app.tasks.stuff'.
Es scheint, dass die Sellerie Beat-Scheduler, die ich benutze nicht seine Warteschlange aktualisieren. Dies ist, wie der Planer in meinem Projekt/settings.py-Datei definiert ist:
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
Neustarten der Sellerie Arbeiter hilft nicht. Zu Ihrer Information, ich benutze einen Redis-Broker.
Wie kann ich die Sellerie-Beat-Warteschlange entweder löschen oder aktualisieren, so dass ältere Aufgaben nicht an meinen Selleriearbeiter gesendet werden?
Ich denke, Sie müssen auch den Datenbankeintrag für den Zeitplan entfernen. Sie können dies vom django admin tun. – Ngenator
Hallo Regis, hast du es geschafft, dieses Problem zu lösen. Ich habe das gleiche Problem. @Ngenator - Ihre Lösung ist –
Das Problem könnte im Redis-Server sein. Da die Sellerie-Aufgaben ein gebeiztes Objekt sind, das in den Redis-Server geschoben wurde, halten die Redis die veralteten Aufgaben aufrecht. Starten Sie den Redis-Server neu oder rufen Sie die Löschfunktion der Task auf. –