Django查看和单独的进程

时间:2011-06-02 07:50:35

标签: python django multiprocessing

我想做类似的事情:

f(n)计算n! ,这显然需要很长时间才能完成,因此计算需要在与django视图分开的进程中运行。另外,我希望视图立即返回响应(例如进度0%)以及后续轮询需要更新进度,因此视图需要与上述过程进行通信。

实现这一目标的最佳方式是什么?

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:0)

Andrey Fedoseev提出了一个很好的建议,但让我想出一个更通用的解决方案。您可以创建一些WaitingTasks模型,您的视图将放置新任务。然后,可以使用任何方法来处理那些等待的任务 - cronjob,upstart守护进程,等等 - 写回进度和结果。

(实际上celery使用类似的方法,仅使用RabbitMQ)

答案 2 :(得分:0)

我已经使用此链接中包含的策略产生了很大的影响:Signals in Django。我使用的是使用python线程模块的“异步处理信号”部分。

信号代码已过时(即使它位于Google搜索的顶部)。尽管如此,线程代码可能对您有所帮助。