我的代码有两个函数:
async def blabla():
sleep(5)
和
async def blublu():
sleep(2)
据我所知,asyncio.wait_for可以等待这样的一个函数:asyncio.wait_for(blublu(), timeout=6)
或asyncio.wait_for(blublu(), timeout=6)
,我不想做的就是让异步等待这两个函数,如果其中一个函数结束得更快,不需要等待第二个函数。这样做有可能吗?编辑:需要超时
发布于 2022-03-18 21:34:07
将asyncio.wait
与return_when
kwarg一起使用:
# directly passing coroutine objects in `asyncio.wait`
# is deprecated since py 3.8+, wrapping into a task
blabla_task = asyncio.create_task(blabla())
blublu_task = asyncio.create_task(blublu())
done, pending = await asyncio.wait(
{blabla_task, blublu_task},
return_when=asyncio.FIRST_COMPLETED
)
# do something with the `done` set
https://stackoverflow.com/questions/71525540
复制相似问题