首页 > 解决方案 > IndexError:从空的双端队列 mongoengine/pymongo 弹出

问题描述

我正在从 Flask 应用程序查询 MongoDB Atlas (M0) 数据库。启动/重新启动应用程序后,查询正常进行,并且在某些时候,每当调用需要数据库查询的操作时,我就会开始收到此错误:

File "/var/www/[Redacted]/[Redacted]/venv/lib/python3.7/site-packages/pymongo/pool.py", line 1278, in _get_socket
    sock_info = self.sockets.popleft()
IndexError: pop from an empty deque

我正在使用 mongoengine 连接和查询数据库。我还使用 mongoengine 在不同的基于 python 的应用程序中连接和查询同一个数据库,并且没有这样的问题 - 只有在生产中的烧瓶中运行时。

我尝试添加authSource=admin到连接字符串参数但没有成功。

我不确定为什么在尝试从生产 Web 服务器访问数据库时,此问题开始随机发生。查询有时会成功运行,因此连接至少可以正常工作,但它会在重新启动后 10 分钟到大约 8 小时之间随机停止工作。

标签: mongodbflaskpymongomongoenginemongodb-atlas

解决方案


推荐阅读