使用gen.task和Tornado来实现简单的功能

时间:2012-07-26 22:35:40

标签: python asynchronous web tornado

只是尝试使用Tornado的异步函数 - 我想从我的处理程序调用一个方法,但它一直告诉我它“有一个意外的关键字参数'回调'”。

class MyHandler(tornado.web.RequestHandler):

    @asynchronous
    @gen.engine
    def get(self):
        response = yield gen.Task(self.dosomething, 'argument')
        self.write(response)
        self.finish()

    def dosomething(self, myargument):
        pass

1 个答案:

答案 0 :(得分:21)

非阻塞功能需要回调,它会传递结果。

class MyHandler(tornado.web.RequestHandler):

    @asynchronous
    @gen.engine
    def get(self):
        response = yield gen.Task(self.dosomething, 'argument')
        self.write(response)
        self.finish()

    def dosomething(self, myargument, callback):
        return callback(myargument)