Skip to main content

tornado.platform.asyncioasyncio 和Tornado之间的桥梁

asyncio 模块和Tornado IOLoop之间的桥梁。

3.2 新版功能.

该模块将Tornado与在Python 3.4中引入的 asyncio 模块(Python 3.3中可使用 作为单独下载)集成。这使得可以在同一事件循环上组合两个库。

大多数应用程序应该使用 AsyncIOMainLoop 在默认 asyncio 事件循环上运行Tornado。需要在多个线程上运行事件循环的应用程序可以使用 AsyncIOLoop 创建多个循环。

注解

Tornado需要 add_reader 系列方法,因此它与Windows上的 ProactorEventLoop 不兼容。请改用 SelectorEventLoop

class tornado.platform.asyncio.AsyncIOMainLoop[源代码]

AsyncIOMainLoop 创建对应于当前 asyncio 事件循环(即由 asyncio.get_event_loop() 返回的)的 IOLoop。推荐用法:

from tornado.platform.asyncio import AsyncIOMainLoop
import asyncio
AsyncIOMainLoop().install()
asyncio.get_event_loop().run_forever()

有关安装替代IOLoops的一般说明,请参阅 tornado.ioloop.IOLoop.install()

class tornado.platform.asyncio.AsyncIOLoop[源代码]

AsyncIOLoop 是在 asyncio 事件循环上运行的 IOLoop。这个类遵循通常的Tornado语义来创建新的 IOLoops;这些循环不一定与 asyncio 默认事件循环相关。推荐用法:

from tornado.ioloop import IOLoop
IOLoop.configure('tornado.platform.asyncio.AsyncIOLoop')
IOLoop.current().start()

每个 AsyncIOLoop 创建一个新的 asyncio.EventLoop;此对象可以使用 asyncio_loop 属性访问。

tornado.platform.asyncio.to_tornado_future(asyncio_future)[源代码]

asyncio.Future 转换为 tornado.concurrent.Future

4.1 新版功能.

tornado.platform.asyncio.to_asyncio_future(tornado_future)[源代码]

将Tornado yieldable对象转换为 asyncio.Future

4.1 新版功能.

在 4.3 版更改: 现在接受任何可屈服的对象,而不只是 tornado.concurrent.Future