gpt4 book ai didi

python - SQLAlchemy 连接丢失

转载 作者:行者123 更新时间:2023-12-01 07:52:14 30 4
gpt4 key购买 nike

我想知道以前是否有人遇到过这个问题。

我有一个使用 Python 3.7.3、SqlAlchemy 和 Falcon 在 Docker 容器中运行的应用程序。

我的数据库是 MariaDB,也在 Docker 容器中运行。

我设置了 SqlAlchemy pool_recycle到 3600 但它仍然不时断开连接。

我在日志中看不到任何内容,但 SQLAlchemy 日志指出在尝试执行某些查询后连接已丢失。

问题可能出在哪里? SQLAlchemy 配置?玛丽亚数据库?也许是 Docker?我怎样才能检查它?

我的存储库:

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 session 和 MySql session 之间的差异有关。下面的 SO 帖子解释得更好。 How to close a SQLAlchemy session?

我会尝试一下并发布结果。

最佳答案

答案可见here 。 MySql session 和 SQLAlchemy session 之间存在差异。关闭 SqlAlchemy session 并不一定会关闭 MySql 连接。更多详细信息可以在提供的链接或 at the official documentation 上找到。 .

关于python - SQLAlchemy 连接丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56152160/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com