Search code examples
pythonpostgresqlsqlalchemypsycopg2

How to set connection timeout in SQLAlchemy


I'm trying to figure out how to set the connection timeout in create_engine(), so far I've tried:

create_engine(url, timeout=10)

TypeError: Invalid argument(s) 'timeout' sent to create_engine(), using configuration PGDialect_psycopg2/QueuePool/Engine. Please check that the keyword arguments are appropriate for this combination of components.

create_engine(url, connection_timeout=10)

TypeError: Invalid argument(s) 'connection_timeout' sent to create_engine(), using configuration PGDialect_psycopg2/QueuePool/Engine. Please check that the keyword arguments are appropriate for this combination of components.

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

(psycopg2.OperationalError) invalid connection option "timeout"

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

(psycopg2.OperationalError) invalid connection option "connection_timeout"

create_engine(url, pool_timeout=10)

What should I do?


Solution

  • The right way is this one (connect_timeout instead of connection_timeout):

    # NOTE: timeout units are seconds
    create_engine(db_url, connect_args={'connect_timeout': 10})
    

    ...and it works with both Postgres and MySQL

    docs sqlalchemy connect-args