【发布时间】:2014-11-29 05:21:02
【问题描述】:
我正在使用 tornado+sqlalchemy 构建一个 webapp,并且完全随机我得到了这个错误
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
exc_info
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 187, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=exc_value)
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 182, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 822, in _execute_context
conn = self._revalidate_connection()
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 239, in _revalidate_connection
"Can't reconnect until invalid "
sqlalchemy.exc.StatementError: Can't reconnect until invalid transaction is rolled back
我不知道如何解决这个问题。我已将所有 db.commit 放入一个
try:
self.db.commit()
except Exception(e):
self.db.rollback()
这是我的班级申请。
class Application
[...]
engine = create_engine(options.db_path, convert_unicode=True, echo=options.debug)
models.init_db(engine)
self.db = scoped_session(sessionmaker(bind=engine))
tornado.web.Application.__init__(self, handlers, **settings)
但什么都没有。 为 mysql+php 等 Web 应用程序配置 sqlalchemy 和 tornado 的最佳方法是什么?
【问题讨论】:
-
这也是我的问题。用falcon框架+gevent+uwsgi
-
@FaraonWEB 你解决过这个问题吗?
标签: python mysql web-applications sqlalchemy tornado