【问题标题】:using gen.task with Tornado for a simple function使用 gen.task 和 Tornado 来实现一个简单的功能
【发布时间】:2012-07-25 14:45:12
【问题描述】:

只是尝试使用 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):
        pass

【问题讨论】:

    标签: python asynchronous web tornado


    【解决方案1】:

    非阻塞函数需要回调,它传递结果。

    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 设置为非阻塞的?您是否实现了任何线程/其他机制使其不会阻塞?
    猜你喜欢
    • 2015-05-02
    • 2013-08-24
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    相关资源
    最近更新 更多