为什么Djangocelley的预计到达时间很长?

2024-10-02 08:30:39 发布

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

我有一个简单的Django芹菜任务,比如:

@task(name="upload_file_to_cdn", max_retries=10)
def upload_file_to_cdn(file_id):
    stuff

当我通过Django shell启动它时:

^{2}$

Celery报告说它会立即运行:

tail -f /var/log/celeryd.log
[2014-01-02 22:54:18,694: INFO/MainProcess] Received task: tasks.upload_file_to_cdn[6e58b72b-8832-427d-a6b8-574f71ac9baa]
[2014-01-02 22:54:18,698: DEBUG/MainProcess] Task accepted: tasks.upload_file_to_cdn[6e58b72b-8832-427d-a6b8-574f71ac9baa] pid:5007
[2014-01-02 22:54:18,714: WARNING/Worker-1] Uploading file 123...

但是,当我在Django视图中运行同一行upload_file_to_cdn.apply_async(args=(123,))时,在芹菜是:

[2014-01-02 22:47:04,006: INFO/MainProcess] Received task: tasks.upload_file_to_cdn[cb8be827-4604-4aa8-81b0-879657827e63] eta:[2014-01-03 03:47:19.004160-05:00]

正如您所看到的,它不仅没有立即运行任务,它还设置了大约6小时后的预计到达时间!为什么会这样?在


Tags: todjangonameinfologtaskcdnmax
1条回答
网友
1楼 · 发布于 2024-10-02 08:30:39

问题最终是由安装在启动和执行任务的不同主机上的django-celeri/celeripython包中的不同版本引起的。一种是使用celery==3.1.7,而另一种是使用celery==3.1.1,这种差异足以触发这种行为。同步版本解决了这个问题。在

相关问题 更多 >

    热门问题