gpt4 book ai didi

Python + SQLAlchemy 问题 : The transaction is inactive due to a rollback in a subtransaction

转载 作者:行者123 更新时间:2023-12-01 06:16:25 24 4
gpt4 key购买 nike

我在使用 Python + SQLAlchemy 时遇到问题。

当出现问题时(在我的例子中,由于竞争条件,这是一个完整性错误)并且引发​​数据库错误,所有以下请求都会导致引发错误:

InvalidRequestError: The transaction is inactive due to a rollback in a subtransaction.  Issue rollback() to cancel the transaction.

虽然我可以防止这个原始错误(竞争条件)的发生,但我想要一个更强大的解决方案,我想防止单个错误导致整个应用程序崩溃。

执行此操作的最佳方法是什么?有没有办法告诉Python回滚失败的事务?

最佳答案

最简单的事情是确保当您开始在 Controller 中工作时使用新的 SQLAlchemy session 。在/project/lib/base.py中,为BaseController添加一个方法:

def __before__(self):
model.Session.close()

Session.close() 将清除 session 并关闭任何打开的事务(如果有)。您需要确保每次使用 session 时,当您完成 Controller 中的工作时, session 都会被清除。在 Controller 处理请求开始时执行此操作将确保它始终被清除,即使线程的先前请求出现异常并且有回滚等待。

关于Python + SQLAlchemy 问题 : The transaction is inactive due to a rollback in a subtransaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139211/

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