从前端使用AJAX查询Celery以了解创建的任务是否已完成的最佳方法?

Cha*_*ntz 4 django state celery celery-task

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

我知道过去曾经问过类似的问题,例如这个stackoverflow问题,但还没有确定的答案.我知道这个问题的答案因开发人员的偏好而异,但如果有人能够教育不同方法的优缺点,那就太棒了.

为了重新迭代,我将使用task_id来经常从前端触发AJAX查询,以了解视频转换是否已完成.

Cam*_*pka 8

如果你已经django_celery安装,您可以查询视图像task_status或者is_task_successful是进来的djcelery.views包.它们返回一个JSON字典,因此您可以使用JavaScript处理它们.