2017-07-02 2 views
0

J'utilise une application Celery 4.0.2 sur Python 3.6. Je produis une tâche comme ceci:Celery ne reprendra pas l'exécution d'une tâche à ETA donné

eta = datetime.datetime.now() + datetime.timedelta(minutes=15) 
task.apply_async(args=args, eta=eta) 

Le message est unacked dans mon courtier (RabbitMQ) donc en gros demande doit être pris. Les journaux de l'application le confirment:

11:05:04 PM worker.1 | [2017-07-02 23:05:04,029: INFO/MainProcess] Received task: myapp.task[880af074-0bf1-4aa2-a4d0-33dd54cd97b9] ETA:[2017-07-02 23:18:10+00:00] 

Pourtant, 23:18:10 est passé et ... rien ne s'est produit. La tâche reste non compressée, l'application ne la traite pas. Pourquoi? et comment y remédier?

Répondre

1

Il semble que Celery (par défaut) calcule des heures par rapport à datetime.utcnow(), pas datetime.now(). Essayez de changer cela et voir si cela résout le problème.