用于处理 Future对象的实用程序。

白云网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
Tornado 之前提供了自己的 Future类,但现在使用 asyncio.Future。 此模块包含用于与 Tornado 的旧 Future实现向后兼容的方式使用 asyncio.Future 的实用程序函数。
虽然这个模块是 Tornado 内部实现的重要组成部分,但应用程序很少需要直接与其交互。
class tornado.concurrent.Future
tornado.concurrent.Future 是 asyncio.Future 的别名。
在 Tornado 中,应用程序与 Future对象交互的主要方式是在协程中awaiting或yielding它们,而不是调用 Future对象本身的方法。
在 5.0 版更改:Tornado 的 Future实现已被 asyncio的版本取代(如果可用)。
-
Future对象只能在存在当前 IOLoop时创建 - 使用
Future.add_done_callback 安排的回调时间已更改。 - 现在部分支持取消(仅在 python 3 上)
-
exc_info和 set_exc_info方法在 Python 3 上不再可用。
tornado.concurrent.run_on_executor(*args, **kwargs) → Callable
装饰器在执行器上异步运行同步方法。
返回一个future。
要使用的executor由self的executor属性决定。 要使用不同的属性名称,请将关键字参数传递给装饰器:
@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 版更改: 返回与 await兼容的 Future而不是 concurrent.futures.Future。
5.1 版后已弃用:callback参数已弃用,将在 6.0 中删除。 装饰器本身在新代码中不鼓励使用,但不会在 6.0 中删除。
在 6.0 版更改: callback参数已删除。
tornado.concurrent.chain_future(a: Future[_T], b: Future[_T]) → None
将两个 future 链接在一起,这样当一个完成时,另一个也完成。
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: _T) → None
如果未取消,则将给定值设置为 Future的结果。
在取消的 asyncio.Future 上调用 set_result() 时避免 asyncio.InvalidStateError。
tornado.concurrent.future_set_exception_unless_cancelled(future: Union[futures.Future[_T], Future[_T]], exc: BaseException) → None
将给定的 exc设置为 Future的异常。
如果 Future已被取消,则改为记录异常。 如果不需要此日志记录,则调用者应显式检查 Future的状态并调用 Future.set_exception 而不是此包装器。
在取消的 asyncio.Future 上调用 set_exception() 时避免 asyncio.InvalidStateError。
tornado.concurrent.future_set_exc_info(future: Union[futures.Future[_T], Future[_T]], exc_info: Tuple[Optional[type], Optional[BaseException], Optional[traceback]]) → None
将给定的 exc_info设置为 Future的异常。
了解 asyncio.Future 和旧版本 Tornado 中的扩展,以便在 Python 2 上实现更好的回溯。
5.0 版中的新功能。
在 6.0 版更改: 如果future已经取消,则此功能是空操作。 (以前会引发 asyncio.InvalidStateError)
tornado.concurrent.future_add_done_callback(future: Union[futures.Future[_T], Future[_T]], callback: Callable[[...], None]) → None
安排在future完成时调用callback。
callback由future参数调用的。
如果 future已经完成,则立即调用callback。 这可能与 Future.add_done_callback 的行为不同,后者不做这样的保证。
网页标题:创新互联Tornado教程:Tornado使用Future对象
分享地址:http://jxjierui.cn/article/cojeoeg.html


咨询
建站咨询
