欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > sqlalchemy The transaction is active - has not been committed or rolled back.

sqlalchemy The transaction is active - has not been committed or rolled back.

2025/3/17 22:25:07 来源:https://blog.csdn.net/XinShun/article/details/145184794  浏览:    关键词:sqlalchemy The transaction is active - has not been committed or rolled back.

连接池参考

参考:https://blog.csdn.net/SunJW_2017/article/details/129332393

1、因为使用了连接池,没有释放

2、解决方法:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session
from greenlet import getcurrent as get_identclass Service(object):def __init__(self):from common import con_sqlself.engine = create_engine(con_sql,echo=true,  # 显示SQL# poolclass=NullPool,  # 不使用连接池pool_size=5,  # 连接池大小max_overflow=5,  # 允许增加连接数pool_pre_ping=True,  # 在每次使用连接进行数据库操作前,先检验一下连接是否有效。有效就直接使用;无效则重新连接pool_recycle=7200  # 多久之后对线程池中的线程进行一次连接的回收(重置),单位(秒))self.session_factory = sessionmaker(bind=self.engine)self.db_session = scoped_session(self.session_factory, get_ident)def __del__(self):self.dispose()def dispose(self):try:if self.db_session:self.db_session.remove()self.db_session.close()self.db_session = Noneif self.session_factory:self.session_factory = Noneif self.engine:self.engine.dispose()self.engine = Noneexcept Exception as _ex:pass

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词