如何在python/django中分叉进程?

mik*_*725 4 python django subprocess process

然而,在django的上下文中,这更像是一般的Python问题.

现在我在django中有这个视图,它必须处理大量数据.通常它需要服务器(使用django在代理中运行的nginx)几分钟才能完成.有时服务器超时.我不想增加nginx的超时时间.我意识到,如果我可以在django视图中在python中派生一个进程,以便forked(子)进程将独立于django视图执行所有数据处理,那么视图将能够立即将请求返回给用户(因此永远不会超时)并且子进程将在后台继续运行以完成所有计算.

所以这是一个问题:

如何在python中分叉一个独立的进程(如果可能的话,python代码在同一个文件中)?如果可能的话,我如何为其分配unix进程优先级?

我看了一些在python中分支进程的方法,似乎有一些选项.哪一个最适合这种情况?

谢谢.

Jav*_*ier 5

"最佳实践"的答案是使用队列管理器,通常是RabbitMQ或由Django-celery处理的任何后端.

仍然有一些较轻的选项可以产生一个新的线程.这些选项通常缺少的是跟踪进度或保持线程数量受控制的某种方式.

检查Django-utils以查看它是否足够.如果没有,去芹菜.