我正在尝试在 Tornado 的 RequestHandler 中实现 get_current_user,但是在等待对我的数据库的异步调用时,我需要阻塞调用。使用 @tornado.web.asynchronous 装饰调用将不起作用,因为无论哪种方式 get_current_user 方法在异步查询完成和查询回调执行之前返回。
例如:
class MyHandler(BaseHandler):
@tornado.web.asynchronous
@tornado.web.authenticated
def get(self):
self.write('example')
self.finish()
class BaseHandler(tornado.web.RequestHandler):
def get_current_user(self):
def query_cb(self, doc):
return doc or None
database.get(username='test', password='t3st', callback=query_cb)
@tornado.web.authenticated 调用 get_current_user,但总是收到“None”,因为 BaseHandler 没有时间响应。有没有办法,使用龙卷风,暂时阻止一个电话,如上面的电话?