4

我正在使用 Django 和 Celery + RabbitMQ 来创建用户上传的视频的视频转换任务。现在我知道如何查询 celery 以获取状态。我的问题是在哪里保存与每个任务关联的 task_id,我应该将它保存在模型中还是 django 的缓存中?

我知道过去曾提出过类似的问题,例如这个 stackoverflow 问题,但还没有明确的答案。我知道这个问题的答案因开发人员的喜好而异,但如果有人可以就不同方法的优缺点进行教育,那就太好了。

只是为了重新迭代,我将使用 task_id 每隔一段时间从前端触发 AJAX 查询,以了解视频转换是否完成。

4

2 回答 2

8

如果你安装了django_celery,你可以查询task_statusis_task_successful中的视图djcelery.views。它们返回一个 JSON 字典,因此您可以使用 JavaScript 处理它们。

于 2011-02-16T20:54:43.410 回答
4

请参阅我对您的链接问题的回答:测试芹菜任务是否仍在处理中

因此,在设置 celery_task 字段后,您可以轻松定义一个 ajax 视图,该视图将以所需格式返回任务状态。

于 2011-01-31T03:34:31.017 回答