1

Tornado で AsyncHTTPClient を使用して、http 経由で利用可能な「デバイス」に複数のコールアウトを実行しようとしています。

def ext_call(self, params):
    device = AsyncHTTPClient()
    request = HTTPRequest(...)
    return partial(device.fetch, request)

@coroutine
def _do_call(self, someid):
    acall = self.ext_call(params)
    waitkey = str(someid)
    acall(callback = (yield Callback(waitkey)))
    response = yield Wait(waitkey)
    raise Return(response)

def get_device_data(self, lst):
    for someid in lst:
        r = self._do_call(someid)
        print 'response', r

しかし、.fetch の後に AsyncHTTPClient が返されるはずの HTTP 応答の代わりに、次のようになります。

response <tornado.concurrent.TracebackFuture object at 0x951840c>

これがhttp://www.tornadoweb.org/en/stable/gen.htmlの例のように機能しないのはなぜ ですか?

4

1 に答える 1