Das Problem liegt wahrscheinlich nicht in der richtigen Zeitzone wie in Indien. Wenn Sie countdown=20
einstellen, könnten Sie Sellery sagen, dass Sie die Aufgabe 20 Sekunden nach 3 Stunden ausführen sollen.
Ich schlage vor, die pytz library mit Sellerie zu sagen, die Aufgabe zur richtigen Zeit zu starten:
from datetime import datetime, timedelta
from pytz import timezone
# Set timezone: http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
my_tz = timezone('US/Eastern')
DemoTask.apply_async(eta=my_tz.localize(datetime.now()) + timedelta(seconds=20))
Oder noch einfacher, wenn Sie Django verwenden (und eingestellt haben TIME_ZONE
in settings.py
):
Haben Sie zufällig 'CELERY_ALWAYS_EAGER = True'? – Banana
Nein, bin ich nicht. Ich habe auch versucht, 'CELERY_ALWAYS_EAGER = False' zu setzen. – Siddharth
@Siddharth Countdown funktioniert nicht mit' CELERY_ALWAYS_EAGER = True'? Sie würden intuitiv das gleiche Verhalten erwarten, ob synchron oder asynchron, aber es scheint, als würde der Countdown ignoriert:/Ich kann keine Dokumentation finden, die das angibt und das Lesen des Codes scheint nicht offensichtlich. –