【发布时间】:2011-01-23 18:45:44
【问题描述】:
我正在尝试研究如何在 Django 的后台线程中运行进程。我对 Django 和线程都是新手,所以如果我使用的术语有误,请多多包涵。
这是我的代码。基本上我希望start_processing 在success 函数被触发后立即开始。但是start_processing 是一种很容易花费几分钟或失败的功能(它依赖于我无法控制的外部服务),我不希望用户必须等待它成功完成在视图渲染之前。 (就他们而言,“成功”并不取决于start_processing 的结果;如果失败,我是唯一需要担心的人。)
def success(request, filepath):
start_processing(filepath)
return render_to_response('success.html', context_instance = RequestContext(request))
根据我所做的谷歌搜索,大多数人建议在 Django 中不使用后台线程,而是使用 cron 作业更合适。但我非常希望start_processing 在用户到达成功功能后立即开始,而不是等到 cron 作业运行。有没有办法做到这一点?
【问题讨论】:
-
抱歉重复了 - 正如我所想的那样,我弄错了术语;我在寻找 django+thread,而不是 django+process。
-
一般在计算中,进程是在操作系统中执行的计算机程序,可以包含一个或多个线程。说“在后台线程中运行进程”令人困惑,因为进程包含线程,而不是相反。我认为您使用的是更一般意义上的词处理。
标签: django multithreading