web-dev-qa-db-ja.com

SQLAlchemyで接続タイムアウトを設定する方法

私はcreate_engine()で接続タイムアウトを設定する方法を見つけようとしていますが、今まで試しました:

create_engine(url, timeout=10)

TypeError:構成PGDialect_psycopg2/QueuePool/Engineを使用して、create_engine()に無効な引数 'timeout'が送信されました。キーワード引数がこのコンポーネントの組み合わせに適していることを確認してください。

create_engine(url, connection_timeout=10)

TypeError:設定PGDialect_psycopg2/QueuePool/Engineを使用して、create_engine()に送信された引数 'connection_timeout'が無効です。キーワード引数がこのコンポーネントの組み合わせに適していることを確認してください。

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

(psycopg2.OperationalError)無効な接続オプション「タイムアウト」

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

(psycopg2.OperationalError)無効な接続オプション「connection_timeout」

create_engine(url, pool_timeout=10)

私は何をすべきか?

19
daveoncode

正しい方法はこれです(connect_timeout の代わりに connection_timeout):

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

...そして、それはPostgresとMySQLの両方で動作します

32
daveoncode

SQLite 3.28.0の場合:

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

接続タイムアウトを1000秒に設定します。

0
Anton

SQL Serverを使用するRemote Query Timeout

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

デフォルトは5秒です。

0
lorenzori

ibm_db2_sa + pyodbcを介したdb2バックエンドの場合:

ソースコードを調べましたが、バージョン0.3.5(2019/05/30)の時点で接続タイムアウトを制御する方法はないようです: https://github.com/ibmdb/python-ibmdbsa

私はこれを投稿して、他の人の見苦労を防ぎます。

0
MarredCheese

@nivhaninによる「connect_timeout変数のデフォルト値は何ですか(一般的で、MySQLデータベースに固有ですか?」)に対するコメントに対する回答(コメントを残すのに十分な評判がありません)。

Mysql5.7のconnect_timeoutのデフォルトは 10秒 です

関連する可能性もあります:

0
deargle

sqliteバックエンドの場合:

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

接続タイムアウトをtimeoutに設定します。

0
pbn