gunicorn+gevent+django+PostgreSQL下的数据库连接情况

发布于 2022-08-31 09:10:45 字数 654 浏览 22 评论 0

最近写一个项目,边进行代码编写,边阅读django的源码,有些疑问:

首先设置如下场景:

  • 以gunicorn作为部署服务器,worker class使用gevent,worker数量为4
  • gunicorn的max requests参数设为100
  • django使用psycopg2的backend作为数据库驱动代理
  • 使用psycogreen来patch psycopg2,使之能够支持gevent的协程
  • Django使用1.6以上的版本

问题如下:

  1. 在上述gunicorn的配置下,应该有4个python进程处理request,每个进程下是否都是为每一个request分配一个gevent协程来处理?
  2. 如果上一问中的答案为,那么是否每一个协程都会创建一个连接?比如:参考上面的配置,假如某个进程现在有40个请求待处理,那么它将创建40个协程,同时每个协程创建一个数据库连接,也就是40个连接(不一定同时创建,考虑到各个请求的处理时间长度不一样)?
  3. Django 1.6引入的CONN_MAX_AGE这个数据库配置的参数如何影响上一问中的数据库连接创建的情况?

希望有熟悉情况的哥们能够回答一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文