我对mysql和sqlalchemy有一个奇怪的问题。 99%的时间都可以正常工作,但有时我的代码需要17分钟才能执行并抛出此异常:
'commit'引发异常:(_ mysql_exceptions.OperationalError)(2013,'与MySQL的连接丢失' 查询期间的服务器')
以下是代码:
self.engine = create_engine(uri, echo=False, poolclass=NullPool)
session_maker = orm.sessionmaker(
bind=self.engine,
expire_on_commit=False,
autoflush=False,
extension=None
)
self.session = self.orm.scoping.scoped_session(session_maker)
self.session.add(entity) # it's a simple object I want to insert
self.session.commit()
我在mysql中激活:
这些日志中没有任何内容可用于我的错误。 mysql中的空闲连接是30分钟 mysql前端负载均衡器中的空闲连接是4分钟
所以我对我的错误一无所知。
你有新想法吗?
答案 0 :(得分:0)
对connect_args使用超时
self.engine = create_engine(uri, echo=False, poolclass=NullPool ,connect_args={'connect_timeout': 10})