正在运行100个以上时锁定asyncio函数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正在运行100个以上时锁定asyncio函数?相关的知识,希望对你有一定的参考价值。
这将是一个不好的解释,但是我不知道该怎么措辞,所以请露给我。我有一个功能:
async def request():
# this can only be called n times at once
但是正如它所说的,它一次只能被调用n次。是否可以在某种对象数量有限的情况下使用某种类型的池,所以我可以这样做:
async def request():
await with poolOfOneHundred.acquire():
# do something
然后python将获取其中的100个,然后到达第101个,它将在await with语句中等待,直到另一个request()函数完成,然后该池中的一个锁将是免费的。
这是东西吗?如果没有,我该如何实现这样的目标?
这有意义吗?
答案
您正在寻找asyncio.Semaphore。
这里是如何使用它的an example。
以上是关于正在运行100个以上时锁定asyncio函数?的主要内容,如果未能解决你的问题,请参考以下文章
使用 aiohttp/asyncio 发出 100 万个请求 - 字面意思
使用 asyncio 时,如何让所有正在运行的任务在关闭事件循环之前完成