当前位置: 首页 > 面试题库 >

aiohttp:设置每秒的最大请求数

颜光临
2023-03-14
问题内容

如何使用aiohttp在客户端设置每秒最大请求数(限制请求数)?


问题答案:

我在这里找到了一种可能的解决方案:http : //compiletoi.net/fast-scraping-in-python-with-
asyncio.html

同时执行3个请求很酷,但是同时执行5000个则不太好。如果您尝试同时执行太多请求,则连接可能会开始关闭,甚至可能被网站禁止。

为避免这种情况,可以使用信号灯。它是一个同步工具,可用于限制在某些时候执行某些操作的协程数量。我们只是在创建循环之前创建信号灯,将要允许的并发请求数作为参数传递:

sem = asyncio.Semaphore(5)

然后,我们只需替换:

page = yield from get(url, compress=True)

由同一件事,但受信号量保护:

with (yield from sem):
    page = yield from get(url, compress=True)

这样可以确保最多可以同时执行5个请求。



 类似资料:
  • 我正在写一个网络爬虫,运行并行抓取许多不同的域。我想限制每秒向每个域发出的请求数量,但我不关心打开的连接总数,也不关心跨所有域发出的每秒请求总数。我想最大限度地增加打开连接和每秒请求的总数,同时限制对单个域的每秒请求数。 我可以找到的所有现有示例(1)限制打开连接的数量,或(2)限制在fetch循环中每秒发出的请求总数。例子包括: aiohttp:速率限制并行请求 它们都不做我要求的事情,即限制每

  • 我有一个Web服务器,它只支持一个非常简单的API -计算在最后一小时,每分钟和每秒收到的请求数。该服务器在世界上非常受欢迎,每秒接收数千个请求。 目标是找到如何准确地将这3个值返回到每个请求? 请求一直在到来,因此每个请求的一小时、一分钟和一秒的窗口是不同的。如何管理每个请求的不同窗口,以便每个请求的计数都是正确的?

  • 问题内容: 我有这段代码,但是当有人在我的网站上时,值可能会更改。我需要每30秒左右更新#finance div。能做到吗? 问题答案: 您可以将代码放在这样的单独函数中: 然后设置一个计时器,每30秒调用一次该函数: 祝好运!;)

  • 问题内容: 我有一个ajax调用到一个php文件。我正在收到结果。现在,我正在研究是否有可能使ajax请求每1秒自动执行一次。我将结果发布到名为的输入字段中。如何每三秒钟执行一次ajax调用而不必调用该函数? 问题答案: 您可能要考虑的是服务器发送事件(SSE) 这是一种HTML5技术,JavaScript可以通过该技术“ 长期轮询 ”服务器端点(您的PHP文件)以查看是否发生了任何更改。长轮询基

  • 使用JMeter中的“bzm-Concurrency Thread Group”和“Constant through Timer”组合,我很难实现所需的“每秒请求数”。 结构 我的测试结构如下: Thread组1 > 恒定吞吐量定时器 HTTP请求 线程组2 恒定吞吐量计时器 HTTP请求 Thread组3 恒定吞吐量计时器 HTTP请求 Thread组4 恒定吞吐量计时器 HTTP请求 数字 我

  • 我想计算来自Spring Boot 2应用程序的特定URL每秒的请求数,以及每个请求所花费的时间(延迟),以毫秒为单位。我们可以从致动器/普罗米修斯那里看到以下指标: 我很困惑如何在普罗米修斯中绘制这个来得到我的结果。我需要添加直方图或分位数吗?