正在运行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函数?的主要内容,如果未能解决你的问题,请参考以下文章

学习 asyncio:异步运行一个有延迟的函数

Python 多处理线程 Asyncio

使用 aiohttp/asyncio 发出 100 万个请求 - 字面意思

使用 asyncio 时,如何让所有正在运行的任务在关闭事件循环之前完成

使用 asyncio 在每分钟的开始(00 秒)运行一个函数

让 asyncio 按顺序运行函数(Python 3)