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_size。max_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

相关推荐
码农阿豪4 小时前
MongoDB迁移到金仓数据库:商品属性继续灵活存,订单报表交给 SQL
数据库·sql·mongodb
秋饼4 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
秋名RG4 小时前
一条 SQL 语句在 MySQL 中的执行过程详解
数据库·sql·mysql
Canmag 兴隆磁性4 小时前
钕铁硼磁片取向方向检测自动化方案:从人工目检到流水线在线分选的工程实践
运维·数据库·自动化·工业自动化·钕铁硼·自动化检测·磁材料
yangmu32034 小时前
安全审批与日志审计:从“谁批准”到“谁执行”的全链路闭环
数据库
樱花落木兰4 小时前
Redis 消息队列的可靠性演进:从 List、Pub/Sub 到 Stream 消费者组,以及 8.x 版本改变了什么
java·开发语言·经验分享·redis·分布式·python·软件工程
mumu1574 小时前
快速上手大模型推理vllm
人工智能·python·大语言模型·agent·vllm
明天会有多晴朗4 小时前
从零手写 Transformer!一个 Python 文件跑通英译中(PyTorch 附完整源码)
人工智能·pytorch·python·深度学习·transformer
R²AIN SUITE5 小时前
多云或私有云环境怎么选项目管理工具?RainSuite等5种产品的8项部署验证
服务器·网络·数据库
隔振降噪研究员5 小时前
裁断机一响,楼板为什么会跟着抖?
大数据·linux·数据库·人工智能