python - 如何在与 SQLAlchemy 和 psycopg2 的 PostgreSQL 连接上设置“lock_timeout”?
问题描述
lock_timeout
使用 PostgreSQL,您可以运行此查询来设置会话的特定内容:
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 为每个会话/连接设置此选项?
解决方案
事实证明,这是lock_timeout
为会话设置的正确方法(注意该值以毫秒为单位):
engine = create_engine(
'postgresql+psycopg2://{user}:{pswd}@{host}:{port}/{name}',
connect_args={'options': '-c lock_timeout=3000'}
)
推荐阅读
- cookies - ASP Core Cookie Auth,添加声明提前过期
- java - 错误:无法在 Windows 10 上创建 Flink 的 Java 虚拟机安装
- python - Python selenium “while true:” 脚本无法执行 driver.get(“URL”)
- mysql - 如何在 MySQL 中通过组合计算并发事件的频率?
- javascript - 如何提高 Angular 列表的滚动速度?
- mysql - mysql中返回主键的嵌套查询?
- c# - 在 SQL Server 中检测 UTF-8
- csv - 试图在列中获取包含“/ 2020”的行数
- python - Pandas OLS 随机效应模型 - 奇怪的预测值
- css - 为什么我的第一轮动画不能正常工作?