作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这更像是一个 Python 的一般问题,但是在 django 的上下文中。
现在我在 django 中有这个 View ,它必须处理大量数据。通常它需要服务器(nginx 和 django 在代理中运行)几分钟来完成。有时服务器超时。我不想增加 nginx 的超时时间。我意识到,如果我可以在 django View 中用 python fork 一个进程,以便 fork (子)进程将独立于 django View 进行所有数据处理,那么该 View 将能够立即将请求返回给用户(因此永远不会超时)并且子进程将继续在后台运行以完成所有计算。
问题来了:
我如何在 python 中 fork 一个独立的进程(如果可能的话,python 代码在同一个文件中)?如果可能,我如何为它分配一个 unix 进程优先级?
我查看了一些在 python 中 fork 进程的方法,似乎有几个选项。哪个最适合这种情况?
谢谢。
最佳答案
“最佳实践”答案是使用队列管理器,通常是 RabbitMQ 或任何由 Django-celery 处理的后端。
不过,还有一些较轻的选项确实会产生一个新线程。这些选项通常缺少某种方式来跟踪进度或控制线程数。
检查 Django-utils看看是否足够。如果没有,请选择 celery 。
关于python - 如何在 python/django 中 fork 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9155487/
我是一名优秀的程序员,十分优秀!