gpt4 book ai didi

python - PyMongo 与 Django 和 uwsgi

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:17 24 4
gpt4 key购买 nike

我有一个带有 MySQL 后端的 Django 应用程序,我想使用 MongoDB 来保存一些额外的(非关系)数据。我不想将 MongoDB 与 Django 的 ORM 一起使用,只是简单的 PyMongo。我应该在哪里初始化 PyMongo 以便拥有一个在 uwsgi 生成的所有 Python 进程之间共享的连接池?

我的 uwsgi 配置如下所示:

[uwsgi]
...
module = myapp.wsgi:application
virtualenv = /var/www/virtualenvs/myapp/
processes = 100
enable-threads = True
single-interpreter = True
uid = www-data
gid = www-data
vacuum = True
...

这会创建 100 个 python 进程,其中每个进程都有一个单独的 MongoClient 连接池,其中有多个与 MongoDB 的连接。这是非常低效的。如何拥有一个在所有进程之间共享的连接池?

提前非常感谢!

最佳答案

PyMongo 是线程安全的,但不是 fork 安全的。 uWSGI通过fork创建多个进程,每个进程都有自己的MongoClient。

Is PyMongo fork-safe?

PyMongo 不会跨线程共享连接。减少 Mongo 连接数量的一种方法是减小线程池的大小。

在 PyMongo 3 中,传递 maxPoolSize=1

关于python - PyMongo 与 Django 和 uwsgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341359/

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