我启动2个龙卷风实例,例如。 tornado-8000和tornado-8001,使用nginx上游。
当我在一个实例上插入数据时,对另一个实例的查询无法找到此数据。
SQLAlchemy查询如下:
topics = self.db.query(Topic).order_by(Topic.updated_at.desc()).limit(20)
我的SQLAlchemy初始化如下:
class Application(tornado.web.Application):
def __init__(self):
# setup app
from urls import handlers,ui_modules
settings = dict(
debug = options.debug,
static_path = os.path.join(root_dir, "static"),
xsrf_cookies = True,
cookie_secret = "nzjxcjasduuqwheazmu293nsadhaslzkci9023nsadnua9sdads/Vo=",
ui_modules = ui_modules,
)
tornado.web.Application.__init__(self, handlers, **settings)
self.db = scoped_session(sessionmaker(bind=engine,autocommit=False,autoflush=False))
BaseHandler:
class BaseHandler(web.RequestHandler):
@property
def db(self):
return self.application.db
我的插入内容:
topic = Topic()
topic.title = u'abcdefg'
self.db.add(topic)
self.db.commit()
错误在哪里?
答案 0 :(得分:4)
感谢@van。 解决了。我重写了tornado.web.RequestHandler的on_finish方法并添加了session.remove()。