避免SQLAlchemy中的套接字超时

2024-04-26 13:49:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉SQLAlchemy,但我正在尝试使用它为个人项目创建和填充数据库。我已经将pool_timeout设置为43200(12小时),但是仍然会出现套接字超时。在

engine = sqlalchemy.create_engine(
            'postgresql+pg8000://gdwatson:pass@localhost/dbname',
            pool_timeout=43200)
db.tables.meta.drop_all(bind=engine)
db.tables.meta.create_all(bind=engine)

conn = engine.connect()
dataset = build_dataset()
conn.execute(db.tables.mytable.insert(),
             dataset)
conn.close()

经过大量处理后,我最终得到socket.timeout: timed out,但可能不到一个小时,当然也不到两个小时。它实际上有三个层次——在处理超时异常时,另一个发生了,然后在处理该异常时又发生了另一个异常。(也许这是图书馆在重试吗?)异常发生在conn.execute中,我不知道如何防止它。在

搜索没有找到任何信息。我使用的是python3.1和SQLAlchemy 0.6.1。在


Tags: 项目executedbtablessqlalchemybindcreatetimeout
1条回答
网友
1楼 · 发布于 2024-04-26 13:49:36

我不知道这是否是推荐的方法,但是您可以定期发送SELECT 1语句,并确保连接不是空闲的。
您还可以查看this以获得一些指导

相关问题 更多 >