如何解决异步龙卷风获取未来错误



我正在尝试使用AsyncHTTPClient从已经在端口6000上运行的本地服务获取/发布。

但我一直得到一个错误RuntimeError:任务得到了坏的收益:<龙卷风.concurrent.Future对象在0x03C9B490>

ps。我使用龙卷风4.4.2,这个错误在最新版本中得到了修复,但我如何在4.4.2中做到这一点?请帮忙!

import tornado.ioloop
from tornado.httpclient import AsyncHTTPClient
import asyncio
import tornado
import urllib
from datetime import datetime
import time
async def client(url):
http_client = AsyncHTTPClient()
response = await http_client.fetch(url)
return response.body
async def main():
http_client = AsyncHTTPClient()
url = "http://localhost:6000/listings"
result = await client(url)
print(result)
if __name__ == "__main__":
result = asyncio.run(main())
print(result)
print(int(time.time() * 1e6))

在版本5.0之前,您不能将asyncio与Tornado一起使用。

使用Tornado自己的ioloop来运行您的程序:

from tornado import ioloop
if __name__ == "__main__":
result = ioloop.IOLoop.current().run_sync(main)


更新:上述解决方案可以正常工作,但如果您愿意,可以使用Tornado 4.x的异步。请参阅:tornado.platform.asyncio.AsyncIOMainLoop

最新更新