async-timeout
兼容async的超时的上下文管理器
async-timeout的timeout和asyncio的wiat_for比较
首先从使用上来说
asyncio.wait_for(aw, timeout, *, loop=None)¶
wait_for需要传入一个awaitable类型的参数,往往用作回调。
而timeout,不需要回调参数不会去创建一个新任务.另外timeout使用的是上下文管理器的形式。
如果仅仅需要给代码片段加超时逻辑,首选timeout。
async with timeout(1.5) as cm:
await inner()
print(cm.expired)
如果1.5s可以运行完打印true,否则打印false,表示超时。