我正在使用Django和Celery + RabbitMQ来创建用户上传的视频的视频转换任务。 Now I know how to query celery to get the status.我的问题是在哪里保存与每个任务相关的task_id,我应该将它保存在模型中还是在django的缓存中?
我知道过去曾提出类似的问题,例如this stackoverflow question但是还没有确定的答案。我知道这个问题的答案因开发人员的偏好而有所不同,但如果有人能够教育不同方法的优缺点,那就太棒了。
为了重新迭代,我将使用task_id经常从前端触发AJAX查询,以了解视频转换是否已完成。
答案 0 :(得分:8)
如果您安装了django_celery,则可以查询task_status
包中的is_task_successful
或djcelery.views
等视图。它们返回一个JSON字典,因此您可以使用JavaScript处理它们。
答案 1 :(得分:4)
请参阅我对您的关联问题的回答:Test if a celery task is still being processed
因此,在设置celery_task字段后,您可以轻松定义ajax视图,该视图将以所需格式返回任务状态。