【问题标题】:Sqlalchemy: Connections aren't closed when pool is overflowedSqlalchemy:池溢出时连接未关闭
【发布时间】:2011-07-29 19:51:42
【问题描述】:

当我在我的网站上运行 ab(apache 基准测试)时(SQLAlchemy 和 postgresql 托管在 Apache Web 服务器上),SQLAlchemy 与 postgre 建立了许多连接,并且出现了太多连接错误。

我追踪了问题,发现问题是池(实际上是QueuePool)。

http://www.sqlalchemy.org/docs/core/pooling.html#sqlalchemy.pool.Pool 的文档说,如果池已满,返回的连接(因为 max_overflow 允许创建这些额外连接而打开)将被丢弃并断开连接。 但似乎连接实际上并没有关闭!他们默默地从游泳池里掉了出来,没有关门。

所以 SQLAlchemy 不断打开新连接,忽略它们(不关闭!)并打开新连接。

增加池大小不是真正的解决方案,问题是没有关闭额外的连接。

(QueuePool 的默认设置是 pool_size=5 和 max_overflow=10)

【问题讨论】:

    标签: postgresql sqlalchemy connection-pooling


    【解决方案1】:

    看起来像 SQLAlchemy 中的一个错误,已于 2 周前修复:http://hg.sqlalchemy.org/sqlalchemy/rev/aff95843c12f#l2.17

    这个修复没有发布,所以你必须手动修补它。

    【讨论】:

      【解决方案2】:

      我认为它的错误并已修复...从源代码安装并玩得开心;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-16
        • 1970-01-01
        • 2011-04-27
        • 2019-12-28
        • 1970-01-01
        • 2021-06-30
        • 1970-01-01
        相关资源
        最近更新 更多