私は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)
私は何をすべきか?
正しい方法はこれです(connect_timeout
の代わりに connection_timeout
):
create_engine(db_url, connect_args={'connect_timeout': 10})
...そして、それはPostgresとMySQLの両方で動作します
SQLite 3.28.0の場合:
create_engine(db_name, connect_args={'timeout': 1000})
接続タイムアウトを1000秒に設定します。
SQL Serverを使用するRemote Query Timeout
:
create_engine(db_url, connect_args={'Remote Query Timeout': 10})
デフォルトは5秒です。
ibm_db2_sa
+ pyodbc
を介したdb2バックエンドの場合:
ソースコードを調べましたが、バージョン0.3.5(2019/05/30)の時点で接続タイムアウトを制御する方法はないようです: https://github.com/ibmdb/python-ibmdbsa
私はこれを投稿して、他の人の見苦労を防ぎます。
@nivhaninによる「connect_timeout変数のデフォルト値は何ですか(一般的で、MySQLデータベースに固有ですか?」)に対するコメントに対する回答(コメントを残すのに十分な評判がありません)。
Mysql5.7のconnect_timeout
のデフォルトは 10秒 です
関連する可能性もあります:
wait_timeout
- デフォルト値28800秒(8時間)interactive_timeout
- デフォルト値28800秒(8時間)sqlite
バックエンドの場合:
create_engine(db_url, connect_args={'connect_timeout': timeout})
接続タイムアウトをtimeout
に設定します。