tornado.concurrent 与之共事 Future 物体¶
使用的实用程序 Future 物体。
Tornado 以前提供了自己的 Future 类,但现在使用 asyncio.Future . 此模块包含用于处理的实用程序功能 asyncio.Future 在某种程度上是向后兼容 Tornado 的旧 Future 实施。
虽然此模块是Tornado内部实现的重要组成部分,但应用程序很少需要直接与之交互。
- class tornado.concurrent.Future¶
tornado.concurrent.Future是一个别名asyncio.Future.在 Tornado 中,应用程序与
Future对象是awaiting或yielding它们在协程中,而不是在Future对象本身。有关可用方法的详细信息,请参见asyncio.Future博士学位。
- tornado.concurrent.run_on_executor(*args: Any, **kwargs: Any) Callable[源代码]¶
- decorator在执行器上异步运行同步方法。 - 返回未来。 - 要使用的执行者由 - executor属性- self. 若要使用其他属性名,请将关键字参数传递给decorator::- @run_on_executor(executor='_thread_pool') def foo(self): pass - 这个修饰器不应该与同名的 - IOLoop.run_in_executor. 一般来说,使用- run_in_executor什么时候? 打电话 当 定义 一种方法。如果需要与旧版Tornado兼容,请考虑定义执行器并使用- executor.submit()在呼叫地点。- 在 4.2 版更改: 添加关键字参数以使用可选属性。 - 在 5.0 版更改: 总是使用当前的IOLoop而不是 - self.io_loop.- 在 5.1 版更改: 返回A - Future兼容- await而不是- concurrent.futures.Future.- 5.1 版后已移除: 这个 - callback参数已弃用,将在6.0中删除。新代码不鼓励使用decorator本身,但在6.0中不会删除它。- 在 6.0 版更改: 这个 - callback参数已删除。
- tornado.concurrent.chain_future(a: Future[_T], b: Future[_T]) None[源代码]¶
- 把两个未来连在一起,这样当一个完成时,另一个也完成了。 - 结果(成功或失败) - a将复制到- b除非- b到目前为止已完成或取消- a完成。- 在 5.0 版更改: 现在接受Tornado/Asyncio - Future对象和- concurrent.futures.Future.
- tornado.concurrent.future_set_result_unless_cancelled(future: Union[futures.Future[_T], Future[_T]], value: tornado.concurrent._T) None[源代码]¶
- 设置给定 - value作为- Future的结果,如果不取消。- 避免 - asyncio.InvalidStateError打电话时- set_result()被取消的- asyncio.Future.- 5.0 新版功能. 
- tornado.concurrent.future_set_exception_unless_cancelled(future: Union[futures.Future[_T], Future[_T]], exc: BaseException) None[源代码]¶
- 设置给定 - exc作为- Future例外。- 如果将来已经取消,则记录异常。如果不需要此日志记录,则调用方应显式检查将来的状态并调用 - Future.set_exception而不是这个包装。- 避免 - asyncio.InvalidStateError打电话时- set_exception()被取消的- asyncio.Future.- 6.0 新版功能. 
- tornado.concurrent.future_set_exc_info(future: Union[futures.Future[_T], Future[_T]], exc_info: Tuple[Optional[type], Optional[BaseException], Optional[types.TracebackType]]) None[源代码]¶
- 设置给定 - exc_info作为- Future例外。- 理解两者 - asyncio.Future以及旧版Tornado中的扩展,以便更好地跟踪python 2。- 5.0 新版功能. - 在 6.0 版更改: 如果未来已经取消,则此功能为“不可操作”(以前 - asyncio.InvalidStateError将被提升)
- tornado.concurrent.future_add_done_callback(future: futures.Future[_T], callback: Callable[[futures.Future[_T]], None]) None[源代码]¶
- tornado.concurrent.future_add_done_callback(future: Future[_T], callback: Callable[[Future[_T]], None]) None
- 安排呼叫 - callback什么时候?- future是完整的。- callback用一个参数调用,- future.- 如果 - future已经完成了,- callback立即调用。这可能与- Future.add_done_callback不作这样的保证。- 5.0 新版功能.