如何在与 SQLAlchemy 和 psycopg2 的 PostgreSQL 连接上设置“lock_timeout”?
How to set `lock_timeout` on a PostgreSQL connection with SQLAlchemy and psycopg2?
使用 PostgreSQL,您可以运行此查询为会话设置特定的lock_timeout
:
SET lock_timeout TO '3s'
我想知道在设置与 SQLAlchemy 的连接时是否有设置此选项的好方法。我实例化 SQLAlchemy 会话的方式如下:
engine = create_engine('postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}')
session = scoped_session(sessionmaker(bind=engine))
我试过在 connect_args
中传递它,但不支持:
engine = create_engine(
'postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}',
connect_args={'lock_timeout': 3}
)
有没有办法用 SQLAlchemy 和 psycopg2 设置这个选项per-session/connection?
事实证明,这是为会话设置 lock_timeout
的正确方法(注意该值以毫秒为单位):
engine = create_engine(
'postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}',
connect_args={'options': '-c lock_timeout=3000'}
)
使用 PostgreSQL,您可以运行此查询为会话设置特定的lock_timeout
:
SET lock_timeout TO '3s'
我想知道在设置与 SQLAlchemy 的连接时是否有设置此选项的好方法。我实例化 SQLAlchemy 会话的方式如下:
engine = create_engine('postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}')
session = scoped_session(sessionmaker(bind=engine))
我试过在 connect_args
中传递它,但不支持:
engine = create_engine(
'postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}',
connect_args={'lock_timeout': 3}
)
有没有办法用 SQLAlchemy 和 psycopg2 设置这个选项per-session/connection?
事实证明,这是为会话设置 lock_timeout
的正确方法(注意该值以毫秒为单位):
engine = create_engine(
'postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}',
connect_args={'options': '-c lock_timeout=3000'}
)