aiohttp相关内容

如何使用Python Asyncio在异步pgAPI上实现同步外观?

设想一个异步aiohttpWeb应用程序,该应用程序由通过asyncpg连接的PostgreSQL数据库支持,并且没有其他I/O。如何才能有一个托管应用程序逻辑的中间层,即而不是异步?(我知道我可以简单地使所有东西都异步--但是想象一下我的应用程序有大量的应用程序逻辑,仅由数据库I/O绑定,并且我不能触及它的所有内容)。 伪码: async def handler(request): ..
发布时间:2022-03-25 12:16:43 Python

最大化并行请求数 (aiohttp)

tl;dr:如何最大化可以并行发送的 http 请求数? 我正在使用 aiohttp 库从多个 url 获取数据.我正在测试它的性能,我观察到在这个过程中的某个地方存在瓶颈,一次运行更多的 url 无济于事. 我正在使用此代码: 导入异步导入 aiohttp异步 def fetch(url, session):headers = {'User-Agent': 'Mozilla/5.0 ..
发布时间:2022-01-05 15:36:08 Python

为什么 asyncio 不总是使用执行程序?

我必须发送很多 HTTP 请求,一旦所有请求都返回,程序就可以继续.听起来很适合 asyncio.有点天真,我把对 requests 的调用封装在一个 async 函数中,并将它们交给 asyncio.这不起作用. 在网上搜索后,我找到了两个解决方案: 使用诸如 aiohttp 之类的库,该库可与 asyncio 将阻塞代码包装在对run_in_executor的调用中 为了更 ..
发布时间:2021-12-31 20:03:37 Python

我如何在 asyncio 中使用请求?

我想在 asyncio 中做并行 http 请求任务,但我发现 python-requests 会阻塞 asyncio 的事件循环.我找到了 aiohttp 但它无法提供使用 http 代理的 http 请求服务. 所以我想知道是否有一种方法可以在 asyncio 的帮助下进行异步 http 请求. 解决方案 要将请求(或任何其他阻塞库)与 asyncio 一起使用,您可以使用 Ba ..
发布时间:2021-12-31 19:45:50 Python

aiohttp:限制并行请求的速率

API 通常有用户必须遵守的速率限制.例如,让我们以 50 个请求/秒为例.顺序请求需要 0.5-1 秒,因此太慢而无法接近该限制.但是,使用 aiohttp 的并行请求超出了速率限制. 为了尽可能快地轮询 API,需要限制并行调用的速率. 我目前发现的装饰 session.get 的示例,大致如下: session.get = rate_limited(max_calls_per_ ..
发布时间:2021-12-30 21:06:05 Python

如何将python asyncio与线程结合起来?

我已经成功构建了一个 RESTful 微服务侦听 POST 事件以从各种馈送器收集实时事件的 Python asyncio 和 aiohttp. 然后构建一个内存结构以在嵌套的 defaultdict/deque 结构中缓存最后 24 小时的事件. 现在我想定期检查该结构到磁盘,最好使用pickle. 由于内存结构可能大于 100MB,我想避免在检查点结构所需的时间内阻止传入事件 ..
发布时间:2021-12-06 12:05:15 Python

如何从 aiohttp 响应中获取 IP 地址

我一直在尝试查看来自 aiohttp 请求的响应,但没有找到获取指定主机 ip 地址的方法: 与 aiohttp.ClientSession() 异步作为会话:与 session.get(f'http://{host}') 异步作为响应:打印(响应.__dir__())#Wanting 在这里得到响应的 ipaddress 解决方案 我假设您的主机由一个 url 表示(否则您已经拥有 IP ..
发布时间:2021-10-26 17:55:49 Python

运行时错误:异常被忽略:<function _ProactorBasePipeTransport

我正在使用 aiohttp、asyncio 和 codetiming 来发出并发请求.我最近将 Python 升级到 3.9.0 版,但出现 RuntimeError: 程序运行后事件循环已关闭.我正在尝试使用队列数据结构发出异步请求... 导入异步导入 aiohttpfrom codetiming import Timer异步定义任务(名称,工作队列):timer = Timer(text=f ..
发布时间:2021-10-26 17:55:46 Python

Asyncio 未并行运行 Aiohttp 请求

我想使用 python 并行运行许多 HTTP 请求.我用 asyncio 尝试了这个名为 aiohttp 的模块. import aiohttp导入异步异步定义主():与 aiohttp.ClientSession() 作为会话异步:对于范围内的我(10):与 session.get('https://httpbin.org/get') 异步作为响应:html = 等待 response.te ..
发布时间:2021-10-26 17:55:40 Python