我如何解决异步龙卷风获取未来错误
How do i resolve Async tornado fetching future error
我正在尝试使用 AsyncHTTPClient 从已在端口 6000 运行 的本地服务 Get/Post。
但我不断收到错误 RuntimeError: Task got bad yield:
ps。我正在使用 tornado 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))
您不能使用 asyncio
Tornado 5.0 之前的版本。
使用 Tornado 自己的 ioloop 来 运行 你的程序:
from tornado import ioloop
if __name__ == "__main__":
result = ioloop.IOLoop.current().run_sync(main)
更新: 上面的解决方案可以正常工作,但是,如果你愿意,你 可以 将 asyncio 与 Tornado 4.x.参见:tornado.platform.asyncio.AsyncIOMainLoop
.
我正在尝试使用 AsyncHTTPClient 从已在端口 6000 运行 的本地服务 Get/Post。
但我不断收到错误 RuntimeError: Task got bad yield:
ps。我正在使用 tornado 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))
您不能使用 asyncio
Tornado 5.0 之前的版本。
使用 Tornado 自己的 ioloop 来 运行 你的程序:
from tornado import ioloop
if __name__ == "__main__":
result = ioloop.IOLoop.current().run_sync(main)
更新: 上面的解决方案可以正常工作,但是,如果你愿意,你 可以 将 asyncio 与 Tornado 4.x.参见:tornado.platform.asyncio.AsyncIOMainLoop
.