Celery不会在给定的ETA上恢复执行任务

时间:2017-07-02 21:34:27

标签: python celery

我在Python 3.6上运行Celery 4.0.2应用程序。我做了这样的任务:

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

我的代理(RabbitMQ)中的消息未被解包,所以基本上应用程序必须已经接受了它。来自应用程序的日志确认了它:

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]

然而23:18:10过去了......没有发生任何事。任务保持未被应用,应用程序不处理它。 为什么?如何解决?

1 个答案:

答案 0 :(得分:2)

似乎Celery(默认情况下)正在计算相对于datetime.utcnow()的时间,而不是datetime.now()。尝试更改它,看看它是否解决了问题。