Il problema probabilmente non è nel fuso orario giusto come in India. Impostando countdown=20
potresti dire a Celery di eseguire l'operazione 20 secondi dopo 3 ore fa.
Io suggerisco di usare il pytz library per dire Sedano per avviare l'attività al momento giusto:
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))
O anche più facile se si utilizza Django (e hanno fissato TIME_ZONE
in settings.py
):
Hai per caso "CELERY_ALWAYS_EAGER = True"? – Banana
No, non lo sono. Ho anche provato a impostare 'CELERY_ALWAYS_EAGER = False' – Siddharth
@Siddharth fa il conto alla rovescia non funziona con' CELERY_ALWAYS_EAGER = True'? Ci si aspetterebbe intuitivamente lo stesso comportamento sia in esecuzione sincrona che asincrona, ma sembra che il conto alla rovescia sia ignorato:/Non riesco a trovare alcuna documentazione affermando questo e leggendo il codice non sembra ovvio. –