asyncio并发数_aiohttp.TCPConnector(带限制参数)vs asyncio.Semaphore用于限制并发连接数...

我想我想通过制作一个简单的脚本来学习新的python异步等待语法,更具体地说是asyncio模块,它允许你在一个下载多个资源 .

但现在我被卡住了 .

While researching I came across two options to limit the number of concurrent requests:

将aiohttp.TCPConnector(带限制参数)传递给aiohttp.ClientSession或

使用asyncio.Semaphore .

是否有首选选项,或者如果您只想限制并发连接数,它们是否可以互换使用?性能方面(大致)是否相等?

两者似乎都有默认值100并发连接/操作 . 如果我只使用信号量限制为500,那么aiohttp内部会隐式地将我锁定为100个并发连接吗?

这对我来说都是非常新的和不清楚的 . 请随时指出我的任何误解或我的代码中的缺陷 .

这是我目前包含两个选项的代码(我应该删除哪些?):

Bonus Questions:

如何处理(最好重试x次)出现错误的coros?

coro完成后立即保存返回数据(通知我的DataHandler)的最佳方法是什么?我不希望最后全部保存,因为我可以尽快开始处理结果 .

小号

import asyncio

from tqdm import tqdm

import uvloop as uvloop

from aiohttp import ClientSession, TCPConnector, BasicAuth

# You can ignore this class

class DummyDataHandler(Data

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值