python - 在tornado的ioloop上使用asyncio方法(例如create_future)

标签 python python-3.x tornado python-asyncio ioloop

我知道自 5.0 以来,tornado 的 ioloop 是由 asyncio 处理的,实际上我使用 tornado.ioloop.IOloop.current() 得到的循环是一个 asyncio 循环默认情况下。我的问题是如何以正确的方式访问异步循环本身。例如,我想在asyncio循环上使用loop.create_future()方法,但是tornado包装了循环并且它没有这个方法。

目前我所做的是,当我需要 asyncio 方法时,我只需调用 asyncio.get_event_loop() (因为文档指出这两个循环确实是相同的)。我不确定这是正确的方法,因为现在我对具有不同接口(interface)的同一 ioloop 有不同的引用,并且我使用所需的方法。这有点困惑和令人困惑。

还有更好的办法吗?我可以告诉 Tornado 给我异步循环而不包装它吗?或者我可以使用 Tornado 创建的 IOloop 以某种方式访问​​这些方法吗?

编辑:

https://www.tornadoweb.org/en/stable/ioloop.html#module-tornado.ioloop这里声明如下:

Applications can use either the IOLoop interface or the underlying asyncio event loop directly

我对后者感兴趣,但找不到如何直接访问它的说明。

最佳答案

asyncio.get_event_loop() 是推荐的方法;无需使用(未记录的)asyncio_loop 属性。这就是所有非 Tornado 特定的异步代码获取事件循环的方式。

关于python - 在tornado的ioloop上使用asyncio方法(例如create_future),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59170848/

相关文章:

python - 带有列前缀的数据透视表 Pandas

python - Django:我应该使用 LocMemCache 缓存吗?

python - HTML 标签之间的 Selenium

python - file.read() 覆盖外部文本文件 - 错误或错误代码?

python - 大型 python tornado 项目的最佳结构是什么?

javascript - 为什么此请求不遵循我的 Tornado 重定向?

python - 使用 Django 限制 url 访问

python - NLTK - 缺少停用词 - 英语

python - 当只有某些变量需要多个值时,如何将多个值传递给函数 - python 3

python - 如何向 Tornado 添加自定义事件