sqlalchemy连接池满了报错

报错信息

sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)

解决办法

参考https://docs.sqlalchemy.org/en/20/core/pooling.html

在创建数据库engine时指定连接池pool_size及可接受的溢出max_overflow大小

python 复制代码
engine = create_engine(
    "postgresql+psycopg2://me@localhost/mydb", pool_size=20, max_overflow=0
)
  • pool_size:要维护的池的大小,默认为5。这是池中持久保留的最大连接数。请注意,池开始时没有连接;一旦请求了此数量的连接,该数量的连接将保持不变。pool_size可以设置为0以指示没有大小限制;若要禁用池,请改用NullPool
  • max_overflow:池的最大溢出大小。当连接数达到pool_size中设置的大小时,将返回不超过此限制的其他连接。当这些附加连接返回到池时,它们将断开连接并被丢弃。因此,池将允许的同时连接的总数是pool_size+max_overflow,并且池将允许"睡眠"连接的总数为pool_sizemax_overflow可以设置为-1表示没有溢出限制;对并发连接的总数没有限制。默认值为10
  • 其他参数timeout:连接等待超时时间
  • 其他参数use_lifo:检索连接时使用后进先出(LIFO),而不是FIFO(先进先出)。使用LIFO,服务器端超时方案可以减少非高峰使用期间使用的连接数量。在计划服务器端超时时,请确保使用回收或预ping策略来优雅地处理过时的连接。

注意事项

The QueuePool class is not compatible with asyncio. When using create_async_engine to create an instance of AsyncEngine, the AsyncAdaptedQueuePool class, which makes use of an asyncio-compatible queue implementation, is used instead.

翻译

sqlalchemy的连接池队列sqlalchemy.pool.QueuePool不兼容asyncio

相关推荐
吴佳浩2 分钟前
大模型量化部署终极指南:让700亿参数的AI跑进你的显卡
人工智能·python·gpu
diegoXie1 小时前
Python / R 向量顺序分割与跨步分割
开发语言·python·r语言
程序员小白条1 小时前
0经验如何找实习?
java·开发语言·数据结构·数据库·链表
七牛云行业应用1 小时前
解决OSError: No space left... 给DeepSeek Agent装上无限云硬盘
python·架构设计·七牛云·deepseek·agent开发
liulilittle1 小时前
C++ 浮点数封装。
linux·服务器·开发语言·前端·网络·数据库·c++
郭涤生1 小时前
QT 架构笔记
java·数据库·系统架构
韩立学长1 小时前
基于Springboot流浪动物领养网站0kh2iyb4(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
DBA小马哥1 小时前
Oracle迁移到金仓数据库:完整迁移步骤与兼容性优化实战
数据库·oracle·国产化平替
BoBoZz192 小时前
CutWithScalars根据标量利用vtkContourFilter得到等值线
python·vtk·图形渲染·图形处理
@nengdoudou2 小时前
KStudio 客户端无法访问 KES 数据库服务器的指定 IP / 端口
数据库