pymongo多线程报错Address already in use

  统计/机器学习 Python    浏览次数:3165        分享
1

我用cygwin跑的Python,开了1000个线程读取mongodb的数据,前面好好的,后面就开始报错了,这个问题挺久了,试了网上的方法好像都无效


  File "/usr/lib/python2.7/site-packages/pymongo/collection.py", line 2524, in remove
    with self._socket_for_writes() as sock_info:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/site-packages/pymongo/mongo_client.py", line 825, in _get_socket
    with server.get_socket(self.__all_credentials) as sock_info:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/site-packages/pymongo/server.py", line 168, in get_socket
    with self.pool.get_socket(all_credentials, checkout) as sock_info:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.7/site-packages/pymongo/pool.py", line 790, in get_socket
    sock_info = self._get_socket_no_auth()
  File "/usr/lib/python2.7/site-packages/pymongo/pool.py", line 826, in _get_socket_no_auth
    sock_info, from_pool = self.connect(), False
  File "/usr/lib/python2.7/site-packages/pymongo/pool.py", line 763, in connect
    _raise_connection_failure(self.address, error)
  File "/usr/lib/python2.7/site-packages/pymongo/pool.py", line 211, in _raise_connection_failure
    raise AutoReconnect(msg)
AutoReconnect: 127.0.0.1:27017: [Errno 112] Address already in use




 

莫斯   2017-12-12 15:59



   1个回答 
0

估计是port被占用了,不知道是不是前面的进程出了问题,试试把threads数量调小点,然后读个小数据试试。


SofaSofa数据科学社区DS面试题库 DS面经

数据痴汉   2017-12-13 00:53



  相关主题

Jupiter notebook里一个cell显示多个dataframe   1回答

gc.collect()返回值是什么意思   1回答

如何将csv中多行变成一行   2回答

python如何删除dict中的一个key?   1回答

python的dataframe如何重新排列行或者列   1回答

map lambda if逗号报错,invalid syntax   1回答

python里的continue是什么意思   2回答

print(__doc__)有什么用?   1回答

python函数:   0回答

如何用python获取一个文件的最后修改时间?   1回答

dataframe数据变long python有stata类似的命令吗   1回答

Anaconda安装wptools失败,提示找不到该包   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!