python多线程数据库连接过多_如何解决多线程下Pymongo连接过多的问题?

在多线程环境中遇到PyMongo警告,提示在fork前打开MongoClient可能导致死锁。解决方法是在创建MongoClient时设置connect=False。然而,即使加上此参数,问题依然存在。博主在类中初始化MongoClient,尝试连接到localhost的27017端口,但程序仍然报错。寻求关于多进程下正确初始化MongoClient的方法。
摘要由CSDN通过智能技术生成

最近调整原来的py爬虫时发现一个问题

在多线程下pymongo会报一个危险

/usr/lib64/python2.6/site-packages/pymongo/topology.py:75:

UserWarning: MongoClient opened before fork. Create MongoClient with connect=False,

or create client after forking. See PyMongo's documentation for details:

http://api.mongodb.org/python/current/faq.html#using-pymongo-with-multiprocessing>

"MongoClient opened before fork. Create MongoClient "

大意是多进程下要加上connect=False参数防止死锁?

然后加上这个参数程序依旧报这个危险,所以问下多进程下 pymongo的要在哪里初始化?

目前是这样

class mongo():

def __init__(self):

try:

client = MongoClient(host="127.0.0.1", port=27017, connect=False)

db = client.db

print "mogodb successful connection~^_^"

except Exception, e:

print "mogodb Error", e

def in():

......

拜谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值