RabbitMQ上的调度芹菜任务在其指定的运行时间之后仍然不被确认

2024-04-24 19:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用Celery和RabbitMQ时,无法在指定的未来时间运行计划任务。在

在Heroku服务器上使用Django和RabbitMQ附加组件。在

问题:

有时任务根本不运行,有时确实在运行,但它们运行的时间大大减少了(比如一个小时)。在

未运行的示例任务:

当我试图用倒计时或ETA运行任务时,它实际上从未执行过。以下是未运行的ETA任务示例:

>>> dummy_task.apply_async(eta=datetime.datetime.now() + timedelta(seconds=60))
<AsyncResult: 03001c1c-329e-46a3-8180-b115688e1865>

结果日志:

^{pr2}$

一分钟后什么也没发生。我的Heroku RabbitMQ管理控制台中的unacknowledged message count增加一个并保持不变。在

这是有效的:

通过验证是否可以使用delay()方法运行任务,我已经确保celery任务已正确注册,并且RabbitMQ被配置为接受任务。在

>>> dummy_task.delay()
<AsyncResult: 1285ff04-bccc-46d9-9801-8bc9746abd1c>

结果日志:

2012-07-24T14:29:26+00:00 app[worker.1]: [2012-07-24 10:29:26,513: INFO/MainProcess] 
    Got task from broker: events.tasks.dummy_task[1285ff04-bccc-46d9-9801-8bc9746abd1c]

....

2012-07-24T14:29:26+00:00 app[worker.1]: [2012-07-24 10:29:26,571: INFO/MainProcess] 
    Task events.tasks.dummy_task[1285ff04-bccc-46d9-9801-8bc9746abd1c] 
    succeeded in 0.0261888504028s: None

如果有任何帮助,我们将不胜感激。谢谢!在


Tags: infoapp示例taskdatetimeheroku时间rabbitmq
1条回答
网友
1楼 · 发布于 2024-04-24 19:31:01

我有点明白了。因为我在调试,所以我很自然地将任务设置为在5到10分钟内运行。我不知道确切的原因,但我的设备很难处理这个问题。好像需要一定的时间来处理和排队任务。无论如何,提前一个多小时安排的任务已经正常运行。在

相关问题 更多 >