我在问一个基本级别的问题,所以我知道如何进行研究。
我有一个用于处理大文件的 Python 脚本。它运行 1-3 分钟并有多个输出 (stdout)。
我想将这个脚本集成到 django 中。如果我将其作为 View 的一部分运行,它会使网页停止等待结果。我丢失了临时进度报告(即“已处理的 X 记录”或“已插入的 Y 记录”)。
如何开始将脚本集成到站点中,以便我可以使用脚本、跟踪进度并“实时”向用户显示进度和结果?
谢谢。
请您参考如下方法:
您可以在 celery 中运行您的脚本任务,因此您的网页不会卡在那里。你需要找到一种方法来跟踪你的进度,要么使用数据库,要么在内存存储中进行,比如 redis .然后您可以在进度 View 中轮询进度或编写一些 javascript 来更新进度页面中的进度。
celery 和redis 在django 开发中非常常用。即使设置起来并不直接,但仍然值得投入时间。
