在SQLAlchemy中避免套接字超时

Gra*_*son 5 python sockets timeout sqlalchemy python-3.x

我是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()
Run Code Online (Sandbox Code Playgroud)

我最终得到socket.timeout: timed out了大量的处理时间,但可能不到一个小时,当然不到两个小时.它实际上是三个级别 - 在处理超时异常时发生了另一个,然后在处理那个时又发生了另一个.(也许这是库重试?)异常发生在conn.execute,我不知道如何防止它.

搜索没有提供任何信息.我正在使用Python 3.1和SQLAlchemy 0.6.1,它的价值.

Lel*_*uge 2

我不知道这是否是推荐的方法,但您可以定期发送声明SELECT 1并确保连接不空闲。
您也可以研究一下以获取一些指导