Pymong pymongo.errors.AutoReconnect: 127.0.0.1:27017 [已解决]
·
最近做个Spark 的项目,发现如果插入3000多天数据竟然报错;
Pymong <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/pymongo" title="View all posts in pymongo" target="_blank">pymongo</a></span>.errors.AutoReconnect: 127.0.0.1:27017
|
1
2
|
Pymong pymongo . errors . AutoReconnect : 127.0.0.1 : 27017
|
在网上找了好多的答案 ,有的说重试插入,有的说 重启,解决问题的思路千差万别啊。但是还是没解决,最后我想了想,试了下 Python 中的单例模式来创建Pymongo的数据库链接
代码如下:
<br />class ConnectionSingleton(object): '''通过重载实例化函数__new__缓存mongodb连接''' conn=None def __new__(cls,*args,**kwds): if cls.conn is None: cls.conn=<span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/pymongo" title="View all posts in pymongo" target="_blank">pymongo</a></span>.MongoClient() return cls.conn def get_col(dbname,colletion): """ :param colletion: :return: 返回数据库的表 """ cl = ConnectionSingleton() # maxPoolSize return cl[dbname][colletion]
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
< br / > class ConnectionSingleton ( object ) :
'''通过重载实例化函数__new__缓存mongodb连接'''
conn = None
def __new__ ( cls , * args , * * kwds ) :
if cls . conn is None :
cls . conn = pymongo . MongoClient ( )
return cls . conn
def get_col ( dbname , colletion ) :
"""
:param colletion:
:return: 返回数据库的表
"""
cl = ConnectionSingleton ( )
# maxPoolSize
return cl [ dbname ] [ colletion ]
|
终于解决了问题
详细了解 单例模式创建的方式 可以了解这几种方式:
https://www.168seo.cn/python/24816.html
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)