用于处理 Future
对象的实用程序。
白云网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司于2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
Tornado 之前提供了自己的 Future
类,但现在使用 asyncio.Future
。 此模块包含用于与 Tornado 的旧 Future
实现向后兼容的方式使用 asyncio.Future
的实用程序函数。
虽然这个模块是 Tornado 内部实现的重要组成部分,但应用程序很少需要直接与其交互。
tornado.concurrent.Future
是 asyncio.Future
的别名。
在 Tornado 中,应用程序与 Future
对象交互的主要方式是在协程中awaiting
或yielding
它们,而不是调用 Future
对象本身的方法。
在 5.0 版更改:Tornado 的 Future
实现已被 asyncio
的版本取代(如果可用)。
Future
对象只能在存在当前 IOLoop
时创建Future.add_done_callback
安排的回调时间已更改。exc_info
和 set_exc_info
方法在 Python 3 上不再可用。装饰器在执行器上异步运行同步方法。
返回一个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
参数已删除。
将两个 future 链接在一起,这样当一个完成时,另一个也完成。
a 的结果(成功或失败)将被复制到 b,除非 b 已经完成或在 a 完成时取消。
在 5.0 版更改: 现在接受 Tornado/asyncio Future
对象和 concurrent.futures.Future
。
如果未取消,则将给定值设置为 Future
的结果。
在取消的 asyncio.Future
上调用 set_result()
时避免 asyncio.InvalidStateError
。
将给定的 exc
设置为 Future
的异常。
如果 Future
已被取消,则改为记录异常。 如果不需要此日志记录,则调用者应显式检查 Future
的状态并调用 Future.set_exception
而不是此包装器。
在取消的 asyncio.Future
上调用 set_exception()
时避免 asyncio.InvalidStateError
。
将给定的 exc_info
设置为 Future
的异常。
了解 asyncio.Future
和旧版本 Tornado 中的扩展,以便在 Python 2 上实现更好的回溯。
5.0 版中的新功能。
在 6.0 版更改: 如果future
已经取消,则此功能是空操作。 (以前会引发 asyncio.InvalidStateError
)
安排在future
完成时调用callback
。
callback
由future
参数调用的。
如果 future
已经完成,则立即调用callback
。 这可能与 Future.add_done_callback
的行为不同,后者不做这样的保证。
新闻名称:创新互联Tornado教程:Tornado使用Future对象
网页网址:http://www.shufengxianlan.com/qtweb/news48/251248.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联