2012-01-25 33 views
2

我对网络开发很新颖,所以我只是想看看我是否有一个完整的图片,适合我正在尝试做的事情。如果有任何术语错误,请原谅我。 我的Django应用程序需要做到以下几点:如何让Django返回一个模板,但在模板返回后继续执行一个过程?

  1. 用户上传文件通过他的浏览器
  2. 文件由服务器处理(最多可能需要一个小时)
  3. 用户看到了他的浏览器的结果
我有关于如何完成第2步麻烦

...这里是我的想法:

1.用户上传文件(很简单)

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.用户看到了他的浏览器的结果 - 浏览器查询定期服务器,看看任务完成。当工作准备就绪后,浏览器获得结果。

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

+2

使用任务队列(即芹菜)或打开子进程(不知道它是否会工作) – yedpodtrzitko

回答