小编Jar*_*rod的帖子

龙卷风异步处理程序

我试图在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)
Run Code Online (Sandbox Code Playgroud)

@ tornado.web.authenticated调用get_current_user,但始终收到"None",因为BaseHandler没有时间响应.有没有办法,使用龙卷风,暂时阻止呼叫,如上面的呼叫?

asynchronous tornado requesthandler

7
推荐指数
1
解决办法
7450
查看次数

标签 统计

asynchronous ×1

requesthandler ×1

tornado ×1