совместить асинчо и торнадо - PullRequest
0 голосов
/ 24 января 2019

Учитывая, что в версии 5 Tornado tornado.ioloop.IOLoop.current() является циклом событий asyncio, когда он доступен - как можно обеспечить, чтобы скрипт веб-очистки aiohttp, вызываемый из обработчика, использовал тот же цикл событий?

Есть ли примеры такой установки?

Спасибо

1 Ответ

0 голосов
/ 25 января 2019

По умолчанию должно работать. Вот простой пример:

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