簡體   English   中英

sqlalchemy.pool + psycopg2超時問題

[英]sqlalchemy.pool + psycopg2 timeout issue

我有一個Web應用程序超時問題,我懷疑該錯誤在數據庫中。 查詢運行時間過長。

如何增加設置的允許運行時間?

我通過使用sqlalchemypsycopg2使用數據庫池。

我的數據庫是Postgres數據庫。

  import psycopg2
  import sqlalchemy.pool as pool

  def generate_conn_string(db_name):
        db_name = db_name.upper()
        conn_string = "host='{}' port='{}' dbname='{}' user='{}' password='{}' ".format(
            os.environ.get('DB_HOST_' + db_name),
            os.environ.get('DB_PORT_' + db_name),
            os.environ.get('DB_NAME_' + db_name),
            os.environ.get('DB_USER_' + db_name),
            os.environ.get('DB_PASSWORD_' + db_name))
        return conn_string

   def get_conn_():
        db_name = "mydb"
        conn_string = Pooling.generate_conn_string(db_name)
        conn = psycopg2.connect(conn_string)
        return conn

   connection_pool = pool.QueuePool(get_conn, max_overflow=30, pool_size=5)

我假設您正在詢問PostgreSQL中的語句超時 您使用SQLAlchemy的方式有些奇怪,但是普通的SQLAlchemy構造函數接受了一個額外的connect_args參數,該參數可以這樣使用

engine = create_engine(..., connect_args={"options": "-c statement_timeout=5000"})

請注意,超時時間以毫秒為單位。 在您的情況下,可以將選項與直接的psycopg2 / libpq一起使用:

conn = psycopg2.connect(conn_string, , options='-c statement_timeout=5000')

相關問題: 使用sqlalchemy create_engine配置查詢/命令超時?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM