Python 将gen.task与Tornado结合使用以实现简单的功能

Python 将gen.task与Tornado结合使用以实现简单的功能,python,asynchronous,web,tornado,Python,Asynchronous,Web,Tornado,只是尝试使用Tornado的异步函数——我想从我的处理程序调用一个方法,但它一直告诉我它“得到了一个意外的关键字参数‘callback’” 非阻塞函数需要回调,并在其中传递结果 class MyHandler(tornado.web.RequestHandler): @asynchronous @gen.engine def get(self): response = yield gen.Task(self.dosomething, 'argument'

只是尝试使用Tornado的异步函数——我想从我的处理程序调用一个方法,但它一直告诉我它“得到了一个意外的关键字参数‘callback’”


非阻塞函数需要回调,并在其中传递结果

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)

谢谢我希望错误消息表明它丢失了,而不是它找到了“回调”。干杯:)嗨,我想知道你是如何让dosomething成为非阻塞的?您是否实施了任何线程/其他机制,使其不会阻塞?
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)