Come impostare il timeout di connessione in SQLAlchemy

Sto cercando di capire come impostare il timeout di connessione in create_engine(), finora ho provato:

create_engine(url, timeout=10)

TypeError: Invalid argument(s) ‘timeout’ inviata alla create_engine(), utilizzando la configurazione PGDialect_psycopg2/QueuePool/Motore. Si prega di controllare
che la parola chiave di argomenti appropriati per questa combinazione di
i componenti.

create_engine(url, connection_timeout=10)

TypeError: Invalid argument(s) ‘connection_timeout’ inviato a
create_engine(), utilizzando la configurazione
PGDialect_psycopg2/QueuePool/Motore. Si prega di controllare che la parola chiave
argomenti appropriati per questa combinazione di componenti.

create_engine(db_url, connect_args={'timeout': 10})

(psycopg2.OperationalError) non valida opzione di connessione
“timeout”

create_engine(db_url, connect_args={'connection_timeout': 10})

(psycopg2.OperationalError) non valida opzione di connessione
“connection_timeout”

create_engine(url, pool_timeout=10)

Cosa devo fare?

InformationsquelleAutor daveoncode | 2016-02-25



6 Replies
  1. 34

    Il modo giusto è questo (connect_timeout invece di connection_timeout):

    create_engine(db_url, connect_args={'connect_timeout': 10})

    …e funziona sia con Postgres e MySQL

    • Qual è il valore di default per il connect_timeout variabile (generali e specifici di database MySQL?
    • FWIW, questa sintassi è documentato qui: docs.sqlalchemy.org/en/latest/core/…
    • Altro timeout provo stanno fallendo. Per esempio, vorrei utilizzare net_read_timeout per mysql, ma che non sembra funzionare.
    • e timeout per pymssql.
    • 10 che cosa? Minuti o secondi o millisecondi?
  2. 0

    Per sqlite backend:

    create_engine(db_url, connect_args={'connect_timeout': timeout})

    sarà impostare il timeout di connessione per timeout.

  3. 0

    per SQL Server utilizzare il Remote Query Timeout:

    create_engine(db_url, connect_args={'Remote Query Timeout': 10})

    di default è di 5 secondi.

  4. 0

    Per SQLite 3.28.0:

    create_engine(db_name, connect_args={'timeout': 1000})

    sarà impostare il timeout di connessione a 1000 secondi.

Lascia un commento