我已经阅读了许多类似的问题,但似乎没有解决我的问题。我正在运行一个pylons应用程序并使用SQLAlchemy连接到2个数据库。通过配置文件配置的主服务器完美无故地运行。我正在尝试通过初始化模型中定义的类来连接到第二个数据库,如下所示:
class DB2(object):
def __init__(self):
self.engine = sa.create_engine('mysql://someaddress:3306/database', echo=False, pool_recycle=1800)
self.meta = sa.MetaData(self.engine)
<define tables>
<define mappings>
Session = orm.sessionmaker(bind=self.engine, autoflush=False, autocommit=False)
self.session = Session()
我认为在那里定义pool_recycle(使用与我的工作数据库匹配的时间)就足以防止这种情况,但事实并非如此。有谁能推荐一个解决方案?感谢。
答案 0 :(得分:2)
我最近遇到了同样的问题,并通过确保它始终关闭事务来解决它,即使在SELECT之后也是如此。只需将DB2.session.commit()添加到您使用它执行某些操作的每个位置,它就应该开始循环连接。