我在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过去了......没有发生任何事。任务保持未被应用,应用程序不处理它。 为什么?和如何解决?
答案 0 :(得分:2)
似乎Celery(默认情况下)正在计算相对于datetime.utcnow()
的时间,而不是datetime.now()
。尝试更改它,看看它是否解决了问题。