SQLAlchemy在17分钟后提交错误

时间:2017-10-12 08:47:02

标签: python mysql sqlalchemy

我对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中激活:

  • 慢查询日志
  • 在innodb中打印死锁

这些日志中没有任何内容可用于我的错误。 mysql中的空闲连接是30分钟 mysql前端负载均衡器中的空闲连接是4分钟

所以我对我的错误一无所知。

你有新想法吗?

1 个答案:

答案 0 :(得分:0)

对connect_args使用超时

self.engine = create_engine(uri, echo=False, poolclass=NullPool ,connect_args={'connect_timeout': 10})

Check here for more info !!!