如何在 python/django 中 fork 一个进程?

2024-01-31

然而,在 django 的上下文中,这更像是一个 Python 常见问题。

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

所以问题是:

如何在 python 中 fork 一个独立的进程(如果可能的话,python 代码位于同一个文件中)?如果可能的话,我怎样才能给它分配一个unix进程优先级?

我查看了一些在 python 中分叉进程的方法,似乎有一些选择。哪一个最适合这种场景?

谢谢。


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

尽管如此,还是有一些更轻的选项确实会产生新线程。这些选项通常缺乏某种跟踪进度或控制线程数量的方法。

check Django 实用程序 https://github.com/coleifer/django-utils看看是否足够。如果没有,那就吃芹菜。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 python/django 中 fork 一个进程? 的相关文章

随机推荐