如何让Django返回模板,但在返回模板后继续执行进程?

vas*_*ek1 2 python django django-views

我对网络开发很陌生,所以我只是想看看我是否对我想做的事情有了正确的认识.如果有任何术语错误,请原谅我.我的Django应用程序需要执行以下操作:

  1. 用户通过浏览器上传文件
  2. 文件由服务器处理(最多可能需要一个小时)
  3. 用户在浏览器中看到结果

我在如何完成第2步时遇到了麻烦...这就是我的想法:

1.User上传文件(非常简单)

2.文件被处理 - 视图函数将是这样的:

def process(request):
    a. (get file from the request)
    b. (return a page which says "the server is running your job, results will be available in {ETA}") 
    c. (start processing the data)
Run Code Online (Sandbox Code Playgroud)

3.User在浏览器中查看结果 - 浏览器定期查询服务器以查看作业是否完成.当作业准备就绪时,浏览器会获得结果.

我的问题是,在第2步b和c部分中,如何在不等待进程完成的情况下向浏览器返回响应?或者,在将结果返回浏览器后,如何确保进程继续运行?理想情况下,该进程应该可以访问Django环境变量,因为它可以通过Django的界面与数据库一起使用.

zsq*_*are 6

您需要卸载处理.你可以用django-celery.