gpt4 book ai didi

python - Django 如何处理多个请求?

转载 作者:行者123 更新时间:2023-12-02 05:35:39 25 4
gpt4 key购买 nike

生产环境中Django如何处理多个请求?

假设我们有一个 Web 服务器:Apache、Nginx、gunicorn 等
那么,那些来自网络浏览器的任何请求的服务器是否都会启动新的进程来服务该请求?
如果是真的,那不是会造成巨大的开销吗?
如果不是这样,那么同一个 View (让它成为绑定(bind)到 /hello url 的 def hello(request) View )如何同时服务多个请求。

我已经看到问题“...处理多个用户”的答案

最佳答案

Django 一次只处理一个请求。

如果您使用非常旧的 CGI 接口(interface)(在您的 Web 服务器和 Django 之间),则每个请求都会启动一个新的 Django 进程。但我认为没有人这样做。

Web 服务器上有许多附加接口(interface),不会在每次请求时加载新的服务器端程序。 FastCGI 就是其中之一(与编程语言无关),一些程序有自己的模块直接在 Web 服务器中实现(例如 mod-php)[python 过去有这个]。但现在 Django 和一般的 python 更喜欢 WSGI 接口(interface)。

因此网络服务器并行打开一个或多个程序(Django 应用程序)。 Web 服务器将向空闲进程发送请求(或者将请求排队,这由 Web 服务器处理)。有多少个进程以及持续多长时间,取决于 Web 服务器配置。

django支持的数据库支持并发,所以不同的进程处理同一个应用程序是没有问题的。 [SQLite 是不同的,但你应该使用它,只是为了开发/测试 Django]。通过写入一些日志文件[通常是多行],我们可以看到一些问题(并行进程同时写入同一个文件)。

注意:在这样的解释中,我使用广义上的“网络服务器”。这包括gunicorn、mod-wsgi等。

关于python - Django 如何处理多个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com