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の例のように機能しないのはなぜ ですか?