我在 Django 项目中使用 pymongo,最近我开始遇到一个问题,在退出主 Django 进程(即使通过管理命令)时,pymongo 连接将挂起,并且该进程永远不会退出。显然,堆栈中的某处有问题,但目前最好的解决方案似乎是在 Django 退出之前显式关闭连接。
那么:Django 是否为此提供了预关闭信号或挂钩?
顺便说一句:我的连接代码以防您感兴趣。
from django.conf import settings
from pymongo import ReplicaSetConnection, ReadPreference
conn = ReplicaSetConnection(
hosts_or_uri=settings.MONGO['HOST'],
replicaSet=settings.MONGO['REPLICASET'],
safe=settings.MONGO.get('SAFE', False),
journal=settings.MONGO.get('JOURNAL', False),
read_preference=ReadPreference.PRIMARY
)
db = getattr(conn, settings.MONGO['DB'])
(出于好奇,这是在 pymongo 中进行连接池的正确方法吗?)