【发布时间】:2019-01-24 10:49:20
【问题描述】:
鉴于 Tornado 的第 5 版tornado.ioloop.IOLoop.current() 是可用的异步事件循环 - 如何确保从处理程序调用的 aiohttp 网络抓取脚本使用相同的事件循环?
有没有这种设置的例子?
谢谢
【问题讨论】:
标签: tornado python-asyncio aiohttp
鉴于 Tornado 的第 5 版tornado.ioloop.IOLoop.current() 是可用的异步事件循环 - 如何确保从处理程序调用的 aiohttp 网络抓取脚本使用相同的事件循环?
有没有这种设置的例子?
谢谢
【问题讨论】:
标签: tornado python-asyncio aiohttp
它应该默认工作。这是一个简单的例子:
from tornado.ioloop import IOLoop
from tornado.web import RequestHandler, Application
import aiohttp
class MyHandler(RequestHandler):
async def get(self):
async with aiohttp.ClientSession() as session:
async with session.get("https://www.google.com/robots.txt") as resp:
self.write(await resp.text())
app = Application([('/', MyHandler)])
app.listen(8080)
IOLoop.current().start()
【讨论】:
async def入口点,OP就可以从get处理程序中await它。