【问题标题】:How list all opened connections in sqlalchemy?如何在 sqlalchemy 中列出所有打开的连接?
【发布时间】:2022-10-02 22:43:45
【问题描述】:

最近我的生产服务器出现错误sqlalchemy

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at \"myserver.com\" (myip), port myport failed: FATAL: remaining connection slots are reserved for non-replication superuser connections

然而,这个应用程序只有几个用户(1 或 2 个),而且数据库服务器功能不够强大是不可能的。

我的应用程序经过 100% 测试,我还想测试打开的连接数。

有没有办法在sqlalchemy 中列出打开的连接?

    标签: python sqlalchemy


    【解决方案1】:

    默认连接池具有报告连接状态的方法:

    • Pool.status():报告池状​​态,包括打开的连接
    • Pool.checkedout(): 打开的连接数
    • Pool.checkedin(): 池中关闭的连接数
    >>> engine = sa.create_engine('postgresql:///test')
    >>> engine.pool.status()
    'Pool size: 5  Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0'
    >>> conn1 = engine.connect()
    >>> conn2 = engine.connect()
    >>> engine.pool.status()
    'Pool size: 5  Connections in pool: 0 Current Overflow: -3 Current Checked out connections: 2'
    >>> engine.pool.checkedin()
    0
    >>> engine.pool.checkedout()
    2
    >>> conn1.close()
    >>> engine.pool.checkedin()
    1
    >>> engine.pool.checkedout()
    1
    >>> conn2.close()
    >>> engine.pool.status()
    'Pool size: 5  Connections in pool: 2 Current Overflow: -3 Current Checked out connections: 0'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-05
      • 2018-03-02
      • 2014-07-09
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多