与 urllib3 库的连接生命周期

问题描述 投票:0回答:1

我正在使用 Locust 进行负载测试,我正在尝试实现连接生命周期,以便连接池中的连接在连接创建后经过一定时间后在客户端关闭。此功能存在于 C# 中,带有 PooledConnectionLifetime

我一直无法使用 Locust 使用的连接库 urllib3 复制连接生命周期功能。我有一个使用 HttpUser 的客户端脚本。让 HttpUser 使用 PoolManager 子类后,我没有成功。该子类使用 HttpConnection 和 HttpsConnection 子类,这些子类具有尝试实现连接生命周期功能的覆盖方法。似乎甚至没有使用子类,因为它们在 Locust 客户端运行时不会产生任何日志。

有没有办法将连接生命周期功能添加到 urllib3,或者其他可以使用的解决方案?

编辑:我尝试利用

conn.timeout.get_connect_duration()
method 实现功能。我不确定是否只在第一次使用
start_connect()
时调用
_make_request
,或者每次从池中取出时调用。

python locust urllib3
1个回答
1
投票

urllib3
有一个
Timeout
对象,可以将其分配给连接池以强制关闭长时间运行的连接。

例子


来自官方文档的例子

timeout = Timeout(connect=2.0, read=7.0)
http = PoolManager(timeout=timeout)
response = http.request('GET', 'http://example.com/')

蝗虫实施


locust
源代码看来,
HttpUser
有一个可选参数
pool_manager
。此参数默认为
None
,但可以分配一个
PoolManager
对象,如
urllib3
.

所定义

文档


© www.soinside.com 2019 - 2024. All rights reserved.