为了让Celery知道任务的当前状态是什么,它将在你拥有的任何结果后端中设置一些元数据。你可以搭载它来存储其他类型的元数据。
def yielder(): for i in range(2**100): yield i@taskdef report_progress(): for progress in yielder(): # set current progress on the task report_progress.backend.mark_as_started( report_progress.request.id, progress=progress)def view_function(request): task_id = request.session['task_id'] task = AsyncResult(task_id) progress = task.info['progress'] # do something with your current progress
我不会扔吨的数据在那里,但它运作良好,跟踪长时间运行任务的进度。



