【发布时间】:2012-09-18 08:05:28
【问题描述】:
在我的一个视图中,我有几个步骤,它们需要 5 或 7 分钟才能完全完成,所以我想知道是否有办法在浏览器中打印视图的状态,例如:
“正在计算模型...” “后处理模型……” “制作数据库……” “清理旧桌子……”
有没有办法做到这一点?
谢谢!
【问题讨论】:
标签: python django asynchronous django-views progress
在我的一个视图中,我有几个步骤,它们需要 5 或 7 分钟才能完全完成,所以我想知道是否有办法在浏览器中打印视图的状态,例如:
“正在计算模型...” “后处理模型……” “制作数据库……” “清理旧桌子……”
有没有办法做到这一点?
谢谢!
【问题讨论】:
标签: python django asynchronous django-views progress
如此繁重的任务可能不应该成为 django 视图的一部分。您可能想查看 django celery 以进行异步任务管理。
但是,您可以通过轮询服务器来完成类似的操作。简单的设置,使用short polling(基本上是一个javascript循环,每i秒触发一次对服务器的ajax请求,检索状态响应*,您可以使用它向用户显示任何内容)。
*你必须设置一个 url 和函数来以某种方式计算状态,或者如果你使用 celery,你可以使用它的异步结果
【讨论】: