当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python asyncio.wait_for用法及代码示例


用法:

coroutine asyncio.wait_for(aw, timeout)

等待 aw awaitable 以超时完成。

如果aw 是协程,它会自动安排为任务。

timeout 可以是 None 或浮点数或 int 等待的秒数。如果 timeoutNone ,则阻塞直到未来完成。

如果发生超时,它会取消任务并引发 asyncio.TimeoutError

要避免任务 cancellation ,请将其包装在 shield() 中。

该函数会一直等到 future 被实际取消,所以总的等待时间可能会超过 timeout 。如果在取消期间发生异常,则会传播该异常。

如果等待被取消,未来的aw也被取消。

在 3.10 版中更改:删除了loop范围。

例子:

async def eternity():
    # Sleep for one hour
    await asyncio.sleep(3600)
    print('yay!')

async def main():
    # Wait for at most 1 second
    try:
        await asyncio.wait_for(eternity(), timeout=1.0)
    except asyncio.TimeoutError:
        print('timeout!')

asyncio.run(main())

# Expected output:
#
#     timeout!

在 3.7 版中更改:什么时候aw由于超时而取消,wait_for等待aw被取消。此前,它提出了asyncio.TimeoutError立即地。

在 3.10 版中更改:删除了loop范围。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 asyncio.wait_for。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。