Python asyncio是否内置永久休眠方法?替代长时长sleep问询
Python asyncio 是否内置永久休眠方法?
有的,你可以通过两种更优雅的方式实现永久休眠:
- Python 3.10+ 推荐写法
直接给asyncio.sleep()传入float('inf'),这是官方支持的永久休眠用法,和你设想的sleep_forever()效果完全一致:
async def lagging_request_handler(request): await asyncio.sleep(float('inf'))
- 兼容旧版本Python的写法
如果你的Python版本低于3.10,可以等待一个永远不会被触发的asyncio.Event,这种方式比传入超大数值更可靠(不会出现时间溢出问题):
import asyncio async def lagging_request_handler(request): await asyncio.Event().wait()
需要注意的是,用asyncio.sleep(10000)这类超大数值的写法并非真正的永久休眠,只是时长极长;而上面两种方法才是标准的无限期阻塞协程的实现方式。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

