【问题标题】:combine asyncio and tornado结合异步和龙卷风
【发布时间】:2019-01-24 10:49:20
【问题描述】:

鉴于 Tornado 的第 5 版tornado.ioloop.IOLoop.current() 是可用的异步事件循环 - 如何确保从处理程序调用的 aiohttp 网络抓取脚本使用相同的事件循环?

有没有这种设置的例子?

谢谢

【问题讨论】:

    标签: tornado python-asyncio aiohttp


    【解决方案1】:

    它应该默认工作。这是一个简单的例子:

    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()
    

    【讨论】:

    • 换句话说,如果“aiohttp web-scraping script”有一个async def入口点,OP就可以从get处理程序中await它。
    猜你喜欢
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多