Python urllib3:一段时间后关闭空闲连接

2024-01-01

有没有办法告诉Python urllib3在一段时间后不要重用空闲连接,而是关闭它们?

寻找https://urllib3.readthedocs.io/en/latest/reference/index.html#module-urllib3.connectionpool https://urllib3.readthedocs.io/en/latest/reference/index.html#module-urllib3.connectionpool似乎没有显示任何相关内容。


记住:

连接池是维护的数据库连接的缓存 当将来请求时,可以“重用”连接 需要数据库。

你可以通过多种方式做到这一点(我猜):

  • 将重试次数设置为 1。

如果一次失败,这会中断您的连接。设置它:

import requests
s = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=1) # is zero for default
s.mount('http://', a)

  • 更改池连接。

“pool_connections”是要保留的主机池的数量。例如,如果您要连接到 100 个不同的主机,并且pool_connections=10,那么只有最新的 10 个主机的连接将被重新使用。要设置它:

s = requests.Session()
s.mount('https://', HTTPAdapter(pool_connections=1))
s.get('https://www.example.com')

这将停止池的重用。


  • 池最大尺寸

仅当您在多线程环境中使用 Session 时才需要关心这一点。设置它:

s = requests.Session()
s.mount('https://', HTTPAdapter(pool_connections=1, pool_maxsize=1))

  • 配置最大尺寸

他:班级:~connectionpool.ConnectionPool类保留一个个体池:类:~connection.HTTPConnection实例。这些连接在单个请求期间使用,并在请求完成时返回到池中。默认情况下,仅保存一个连接以供重复使用。设置它(默认情况下):

from urllib3 import HTTPConnectionPool
pool = HTTPConnectionPool('www.example.com', maxsize=0) #likely to slow you down cuz it never stores the pools

maxsize – 要保存的可重用的连接数。多于 1 在多线程情况下很有用。


  • 让泳池经理来做吧!

PoolManager 使用最近最少使用 (LRU) 策略来丢弃旧池。也就是说,如果您设置 PoolManagernum_pools到 10,那么在向 11 个或更多不同的主机发出请求后,最近最少使用的池最终将被清理。所以要做到这一点:

from urllib3 import PoolManager
manager = PoolManager(1) # not the manager cleans up pools used for one time
r = manager.request('GET', 'http://www.example.com/')

另外,文档说:

陈旧池的清理不会立即发生。

所以对于那个用途最近使用的容器 https://urllib3.readthedocs.io/en/1.3/collections.html#urllib3._collections.RecentlyUsedContainer(文档仅包含一行)。

Note:

如果 PoolManager 影响所有连接的池,则设置参数 从而。


希望这对您有帮助。获取高级使用文档HERE https://github.com/urllib3/urllib3/blob/master/docs/advanced-usage.rst .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python urllib3:一段时间后关闭空闲连接 的相关文章

随机推荐

  • 行在 Android 布局中无法正确呈现。按钮似乎是问题

    我是 Android 开发新手 我的 XML 布局遇到了问题 当我只有包含文本和 edittext 的行时 布局保持正常 但是一旦我将带有按钮的行放在下面 下面的行就会消失在屏幕下方 这些行彼此渲染得很远 我做错了什么 我的应用程序的 iP
  • java CompletableFuture 相当于 scala Future 的救援和句柄是什么

    我看到CompletableFuture有一个方法handle与 scala 相同Future s handle基本上将成功和异常全部转换为成功map and flatMap上游 或thenApply and thenCompose在Jav
  • Go:同一包中未定义的函数[重复]

    这个问题在这里已经有答案了 我已经开始 Go 并试图遵循这个tutorial https www activestate com blog 2017 04 creating web app using golang gorilla web
  • 摆脱 Scala Future 嵌套

    当一个函数依赖于一些未来的结果时 我一次又一次地陷入困境 这通常可以归结为像 Future Seq Future MyObject 这样的结果 为了摆脱这个问题 我现在在辅助函数中使用 Await 来获取非未来对象并减少嵌套 看起来像这样
  • NPOI 格式错误

    我正在开发一个会计软件 它还将创建 Excel 格式的报告 xls 我几乎在每个需要 Excel 报告的项目中都使用过 NPOI 没有出现任何重大问题 但我现在面临一个问题 似乎无法通过浏览互联网找到任何解决方案 正如您所看到的 在报表中途
  • 什么是 PL-Unit 中的“选择点测试成功”警告,如何修复它?

    我正在编写一个序言程序检查变量是否为整数 我 返回 结果的方式很奇怪 但我认为这对于回答我的问题并不重要 测试 我写过passing针对此行为的单元测试 他们来了 foo test pl begin tests foo consult fo
  • 获取数组内数组的总和[重复]

    这个问题在这里已经有答案了 我如何获得sum这个数组的 arrays 0 176000 0 500 0 3960000 The output应该 arrays 0 4136500 任何帮助都感激不尽 使用可变参数和null第一个回调arra
  • 自定义 REST 协议基于二进制而不是像 Http 这样基于文本是一件好事吗?

    您是否曾经见过创建自定义二进制休息协议而不是使用基本的 http 休息实现的充分理由 我目前正在 Net 中开发面向服务的架构框架 负责托管和使用服务 我不想基于像 Remoting 或 WCF 这样的现有框架 因为我想要完全的灵活性和控制
  • 数组内的多个嵌套组

    我在 MongoDB 中有一组元素 如下所示 1 id ObjectId 58736c7f7d43c305461cdb9b Name Kevin pb event event type Birthday event date 2014 08
  • Bootstrap 模态动态内容

    我需要一种方法来加载可以随时更改的动态内容 根据 Bootstrap 文档 a href remote htm Click me a 正在利用 jQuerys load仅加载内容once 它将内容注入到 modal content div
  • 避免在 R 中的 cut 函数中使用科学记数法

    如何避免在 cut 函数创建的区间中出现科学记数法 a lt seq 10000 50000 by 500 cut a breaks seq 0 max a 300 by 300 我已经尝试过以下方法 但没有帮助 options scipe
  • MonoTouch、Sharepoint Web 服务和 xs:any

    有人接到网络服务电话上班吗与 SharePoint与 MonoTouch MonoDevelop Mono 一起操作 我能够从典型端点 本例中为 vti bin Lists asmx 获取 WSDL 并且 MonoDevelop 按预期创建
  • jQuery:如何获取选中的单选按钮的索引

    我最近发现了一个 StackOverflow 答案 其中给出了关于如何使用 jQuery 获取选中的单选按钮的值 https stackoverflow com questions 596351 how can i get which ra
  • Bootstrap 3 RC 1 中的 typeahead JavaScript 模块在哪里?

    如您所知 Bootstrap RC 1 已经发布 我一直在阅读这个新框架中所有令人敬畏的新功能 但你猜怎么着 打字头不在文档中 有谁知道这是否是出于任何原因 I found 这些例子 http twitter github io typea
  • Java如何将2011-11-06T14:34:16.679+02:00设置为XMLGregorianCalendar

    我正在构建 JAXWS 客户端 方法之一是获取 XMLGregorianCalendar 现在我需要格式化这些数据2011 11 06T14 34 16 679 02 00设置为 XMLGregorianCalendar 如何做呢 该日期是
  • 单个 SQL Server 表上的死锁

    我正在使用 SQL Server 2008 Enterprise 并使用ADO Net C Net 3 5 ASP Net作为客户端访问数据库 当我访问 SQL Server 2008 表时 我总是从 C ADO Net 代码调用存储过程
  • 更改视频时如何运行插件/库?

    执行代码时videoJS plugin取代了HTML5视频播放器 真的很高兴 我在我之间说了我所取得的成就 但是当点击下一个视频时 即使返回到第一个视频 plugin丢失了 让我成为默认玩家HTML5 你可以检查一下jsfiddle htt
  • 左侧的 HTML 元素滚动条[重复]

    这个问题在这里已经有答案了 可能的重复 DIV 左侧垂直滚动条 https stackoverflow com questions 1455708 div vertical scroll bar on left 有没有办法使用 css 或
  • 特定数据符合时间序列的标准是什么?

    我想做的是尝试检测天气数据集是否是时间序列 我想自动化这个过程 假设我有以下数据集 df1 Heading 1 Heading 2 Heading 1 Heading 2 1 1 2023 34 12 34 2 1 2023 42 99 4
  • Python urllib3:一段时间后关闭空闲连接

    有没有办法告诉Python urllib3在一段时间后不要重用空闲连接 而是关闭它们 寻找https urllib3 readthedocs io en latest reference index html module urllib3