我想知道以前是否有人有过这个问题。
我在Docker容器中运行了一个运行Python3.7.3、SqlAlchemy和Falcon的应用程序。
我的数据库也在码头容器中运行MariaDB。
我将SqlAlchemy pool_recycle设置为3600,但它仍然不时地中断连接。
我无法在日志中看到任何内容,但是在尝试执行某些查询后,SQLAlchemy日志状态连接已经丢失。
问题在哪里?SQLAlchemy配置?MariaDB?也许是码头工人?我该怎么检查呢?
我的存储库:
class NfeRepositorio:
def __init__(self, db_session: sessionmaker):
self.session_factory = scoped_session(db_session)
self._session = None
def __enter__(self):
return self
def __exit__(self, ex_type, ex_value, ex_traceback):
self.session_factory.remove()
@property
def session(self):
if not self._session:x
self._session = self.session_factory()
return self._session我的引擎设置:
orm_engine = create_engine(
get_config().ORM_ENGINE_TEMPLATE.format(
get_config().DB_PROTOCOL,
get_config().DB_USERNAME,
get_config().DB_PASSWORD,
get_config().DB_HOST,
get_config().DB_NAME
),
echo=get_config().ORM_ECHO,
pool_recycle=3600
)编辑1:刚刚找到一个日志条目,并在谷歌上做了一些研究。有同样问题的几个人。[Warning] Aborted connection to db (Got timeout reading communication packets)
看起来这个问题与SqlAlchemy会话和MySql会话之间的区别有关。下面的帖子解释得更好了。如何关闭SQLAlchemy会话?
我会试着把结果贴出来。
https://stackoverflow.com/questions/56152160
复制相似问题