wir machen einige verrückte Spaß Sachen mit Django-Sellerie. Ein paar unserer Aufgaben brauchen eine Weile, und wir möchten sie ihre Sache machen lassen. Ich habe versucht, CELERYD_TASK_TIME_LIMIT auf einen großen Wert wie 86400 (24 Stunden) zu setzen, und dennoch melden meine Aufgaben TimeLimitExceeed nach 5 Minuten. Ich habe die Dokumente öfter gelesen, als ich mich erinnern möchte, aber ich kann nichts finden, das auf einen Standardwert für CELERYD_TASK_TIME_LIMIT oder einen Maximalwert verweist.maximaler (cap) Wert für CELERYD_TASK_TIME_LIMIT?
Zwei wirklich wertvollen Fragen für uns:
- Was ist der maximale Wert für CELERYD_TASK_TIME_LIMIT? (momentan scheint es 5 Minuten oder 300 zu sein)
- Warum kann ich CELERYD_TASK_TIME_LIMIT nicht auf None setzen? (Ja, ich bin ziemlich sicher, dass ich die Auswirkungen von potenziellen Zombie Arbeiter verstehen)
In settings.py
CELERYD_TASK_TIME_LIMIT = 86400 #24 hours
CELERYD_TASK_SOFT_TIME_LIMIT = 86400
als Follow-up, hier ist das Arbeiter-Protokoll für eine bestimmte Aufgabe: '[2012-03-26 18: 32: 00.025: INFO/MainProcess] Job vom Broker erhalten: asynch_periodic_update [e3a41c84-f070-4c68-a822-0a223efe1a42] [2012-03-26 18: 37: 00: 403: ERROR/MainProcess] Aufgabe asynch_periodic_update [e3a41c84-f070-4c68-a822-0a223efe1a42] ausgelöst Ausnahme: TimeLimitExceeded() ' –
Es stellte sich heraus, dass es sich um einen falschen Alarm handelte. Unser Skript zum Start von Mitarbeitern wurde mit einem "Zeitlimit" -Argument von 300 Sekunden (also den fünf Minuten) übergeben. Vielleicht wird meine Unfähigkeit, dieses übergeordnete Argument zu finden, helfen, jemand anderen auf eine ähnliche Lösung hinzuweisen. –
Ich bin in einem ähnlichen Problem. Soweit ich weiß, führen wir kein Zeitstreit. Ich setze CELERYD_TASK_TIME_LIMIT in den Einstellungen auf 86400, aber ich bekomme immer den TimeLimitExceed: 300s Fehler. – dannyroa