it-swarm.com.de

Festlegen des Verbindungszeitlimits in SQLAlchemy

Ich versuche herauszufinden, wie man das Verbindungszeitlimit in create_engine() einstellt. Bisher habe ich Folgendes versucht:

create_engine(url, timeout=10)

TypeError: Ungültige Argumente 'Timeout', die mit der Konfiguration PGDialect_psycopg2/QueuePool/Engine an create_engine () gesendet wurden. Bitte prüfe dass die Schlüsselwortargumente für diese Kombination von .__ geeignet sind. Komponenten.

create_engine(url, connection_timeout=10)

TypeError: Ungültige Argumente 'Verbindungszeit' an .__ gesendet. create_engine () mit der Konfiguration PGDialect_psycopg2/QueuePool/Engine. Bitte überprüfen Sie das Schlüsselwort Argumente sind für diese Kombination von Komponenten angemessen.

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

(psycopg2.OperationalError) ungültige Verbindungsoption "Auszeit"

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

(psycopg2.OperationalError) ungültige Verbindungsoption "Verbindungszeitüberschreitung"

create_engine(url, pool_timeout=10)

Was soll ich machen?

17
daveoncode

Der richtige Weg ist dieser (connect_timeout statt connection_timeout):

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

... und es funktioniert sowohl mit Postgres als auch mit MySQL

29
daveoncode

Für SQLite 3.28.0:

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

setzt das Verbindungs-Timeout auf 1000 Sekunden.

0
Anton

für SQL Server benutze das Remote Query Timeout:

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

standard ist 5 Sekunden.

0
lorenzori

Für ein DB2-Backend über ibm_db2_sa + pyodbc:

Ich habe den Quellcode durchgesehen und es scheint keine Möglichkeit zu geben, das Verbindungszeitlimit ab Version 0.3.5 (30.05.2019) zu steuern: https://github.com/ibmdb/python-ibmdbsa)

Ich poste dies, um anderen das Suchen zu ersparen.

0
MarredCheese

Der Standardwert für connect_timeout für Mysql5.7 ist 10 Sekunden

Vielleicht auch relevant:

0
deargle

Für sqlite Backend:

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

setzt das Verbindungszeitlimit auf timeout

0
pbn