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

时间:2012-01-25 17:36:21

标签: python django django-views

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

  1. 用户通过浏览器上传文件
  2. 文件由服务器处理(最多可能需要一个小时)
  3. 用户在浏览器中查看结果
  4. 我在如何完成第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)
    

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

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

1 个答案:

答案 0 :(得分:6)

您需要卸载处理。您可以使用django-celery