Max retries exceeded with url 解决方案

目录

  • 问题解决方案
  • keep alive 与close使用场景

问题解决方案

在上一篇问题解决中:python OSError: [Errno 24] Too many open files | HTTPConnectionPool(host=‘‘, port=80): Max retries e
有提到修改本地进程最大文件数来避免Max retries exceeded with url 报错,也谈到如果请求api端有请求数量限制,仍然是拉取不到结果的。这时我们就要限制我们请求的频率了。
下面有三个常见的方法:
1、增加重试连接次数:
requests.DEFAULT_RETRIES = 5
2、关闭多余的链接:
默认的http connection是keep-alive的,在post请求中,header中有这样一个字段:Connection,我们将其置为’close’

monitor_header = {"Content-type":"application/json","Accept":"*/*","Connection":"close","X-API-Version":"v1","projectname": "wemeet","appname": "media_proxy","token": "2e962d4104a2c28477ab7f38883b79bb"
}

http是一个无状态的面向连接的协议。
http无状态:无状态协议是指http协议本身对于事务处理没有记忆功能,服务器不知道浏览器的状态。通俗的即使你登录了,去访问同一个网站的不同网页,服务器都不会知道你是谁,如果需要记录登录用户的信息,用户操作,用户行为等数据需要使用cookie或session来存储。

keep-alive:从HTTP/1.1起,浏览器默认都开启了Keep-Alive,保持连接特性,客户端和服务器都能选择随时关闭连接,则请求头中为connection:close。简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的TCP连接。但是Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。

误解:无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。即使http在无状态下,只要客户端和服务器的头部信息connection:keep-alive,则在有效期内他们使用同一条TCP连接。
3、请求时增加缓冲延时
由于我这里是多线程进行post请求,总共有2744个线程。这里进行分批次的发请求,发完一次sleep一段时间:

def get_machine_quality(mapping):threads = []list_machine_obj = []now_time = time.time()for value in mapping.values():for v in value:machine_obj = quality_data(v, 0, now_time)list_machine_obj.append(machine_obj)index = 0for value in mapping.values():for v in value:# 创建新线程thread_tmp = my_thread(v, threadfunc_get_machine_quality, list_machine_obj[index])# 添加线程到线程列表threads.append(thread_tmp)index += 1# 开启新线程length = len(threads)part = 4for i in range(0,part):start = int(i / part * length)end = int((i + 1) / part * length)for i in range(start, end):threads[i].start()for i in range(start, end):threads[i].join()time.sleep(40)print(str(start) + "to" + str(end))logging.critical(str(start) + "to" + str(end))# print ("退出主线程")return list_machine_obj  

keep alive 与close使用场景

1、当你的Server内存充足时,KeepAlive =On还是Off对系统性能影响不大。
2、当你的Server上静态网页(Html、图片、Css、Js)居多时,建议打开KeepAlive 。
3、当你的Server多为动态请求(因为连接数据库,对文件系统访问较多),KeepAlive 关掉,会节省一定的内存,节省的内存正好可以作为文件系统的Cache(vmstat命令中cache一列),降低I/O压力。
PS:当KeepAlive =On时,KeepAliveTimeOut的设置其实也是一个问题,设置的过短,会导致Apache 频繁建立连接,给Cpu造成压力,设置的过长,系统中就会堆积无用的Http连接,消耗掉大量内存,具体设置多少,可以进行不断的调节,因你的网站浏览和服务器配置 而异。

参考:
解决Max retries exceeded with url的问题
转:Connection: close和Connection: keep-alive有什么区别?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正确理解JavaScript

过去几年我注意到技术圈一个很奇怪的现象,有太多程序员将那些他们只是有过非常浅显的了解, 但其实根本就不懂的技术写到他们的简历中,这个现象几乎每种语言都有,但这其中最严重的就要数javascript了。 你不知道你不懂 出现这种状况…

医疗机构远程视频监控集中管理,贝锐蒲公英提供一站式解决方案

上海某企业专业致力于医疗软件、家居智能化研发、设计、销售、集成及实施,企业主营业务之一为医疗软件,涉及PACS/RIS/WEB/HIS、示教系统等方面的医院信息化建设。 在实际应用、部署过程中,需要实现各地区分院与总院间的数据库互相访问、视频数…

py脚本:linux系统下定时清理文件

linux清空文件内容的三种方法: 1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可。但当文件内容较大时,处理较慢,命令如下: vim file_name :%d :wq2.使用cat命令情况,命令如下&a…

Process类:启动和停止本地系统进程

Process.Start 方法 (String, String) 通过指定应用程序的名称和一组命令行参数来启动一个进程资源。(并将该资源与新的 Process 组件相关联) 如果没有启动资源,则返回null Process.Start("d:\\0.jpg"); Process.StartInfo 属性 获…

NYOJ2括号配对问题

括号配对是最基本的栈的问题,它是栈入门的经典题目,思路是,如果是左括号直接进栈,如果是右括号,这时就要比较栈顶的元素与他是否匹配,如果匹配则出栈,否则进栈,下面是代码的实现&…

SVC编码简单了解

基本概念 可伸缩视频编码 SVC(Scalable Video Coding) 作为 H.264 标准的一个扩展,可用于生成不同帧率、分辨率和质量等可分层的视频流。 基本层编码最低层的时域、空域和质量流; 增强层以基本层作为起始点,对附加信息进行补充&a…

程序集系统重构机房收费系统——起步

这段间时一直在查找程序集系统之类的问题,在现正好有机会和大家同享一下. 开始机房收费系统重构也半个月过去了。但看自己的系统连一个简略的登录还没有实现。自己不免有些羞愧了。近来自己的习学态状总的说来还是不错的。但是由于自己对来原的识知把握的欠好所以致导了自己不知…

ie下的透明度,用滤镜filter:alpha

.box{ width:100px; height:100px; background-color:#000; filter:alpha(Opacity50); opacity: 0.5; } 转载于:https://www.cnblogs.com/liujinyu/p/3931087.html

mysql 修改字段类型

修改字段类型: alter table 表名 modify column 字段名 类型。 --如 alter table province_quality modify column quality float(8,2); mysql> describe province_quality ; --------------------------------------------------- | Field | Type |…

Ubuntu硬盘优化,降低硬盘温度(Acer V5 亲测成功 )

1.安装laptop-mode-tools sudo apt-get install laptop-mode-tools2.修改电源管理配置: laptop-mode.conf sudo vim /etc/laptop-mode/laptop-mode.conf修改配置文件: #有关参数的说明请参照文件里的注释说明 ENABLE_LAPTOP_MODE_ON_AC1 #当笔记本使用交流电时也开启…

XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置

这篇随笔对应的.Net命名空间是System.Xml.Serialization;文中的示例代码需要引用这个命名空间。 为什么要做序列化和反序列化?.Net程序执行时,对象都驻留在内存中;内存中的对象如果需要传递给其他系统使用;或者在关机时…

C++智能指针使用指南 part2:智能指针本身的方法以及使用建议

目录往期文章智能指针本身的方法对于unique_ptr对于shared_ptr对于weak_ptr使用建议1、使用工厂函数而非new构造对象2、在类内部调用其他类的方法3、在某类内部将当前对象指针共享给其他对象4、 智能指针只能管理堆对象,不能管理栈上对象5、不能将this指针直接托管给…

“/”应用程序中的服务器错误。

运行时错误 说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。 详细信息: 若要使他人能够在远程计算机上查看此特定错误消息的详细信息,请在位…

JAVA_Collection容器

因为项目的需要,今天抽时间把JAVA中的容器复习了一下,为了以后的不时之需,现在把它记下来。 容器有其名,知其意,用来盛放数据的集合,JAVA中为我们提供了三种容器类:set、list、map,三…

对于enable_shared_from_this、shared_from_this使用笔记

文章为转载汇总 参考:C11标准库的一个工具类enable_shared_from_this的作用及原理分析 从这篇文章中可以知道: 当一个类public继承enable_shared_from_this时,会获得一个共有方法shared_from_this: class T : public enable_shar…

db file sequential read 事件的优化(一)

db file sequential read 事件的优化(一) db file sequential read等待事件有3个参数:file#,first block#,和block数量。在10g中,这等待事件受到用户I/O等待级别的影响。当处理db fi…

2014-08-26 遇到的小问题

不能快速的保存bug的确是很不爽的事情 ,不仅客户着急 领导也着急 ,自己也着急。。。。。。。。哈哈 原来好好的一个平台 简单的一个插入记录 突然就报错了 错误为 could not insert #9521 原来项目是用 NHibernate 做的插入 抛出的异常 真是无法定位到底…

Fatal error: Please read “Security“ section of the manual to find out how to run mysqld as root

.通过在命令后面加上–userroot 进行强制使用root账号启动。 cd /etc/init.d mysqld --userroot 参考: https://blog.csdn.net/huo_wa/article/details/117550307?spm1001.2101.3001.6650.2&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECT…

取消cp别名'cp -i'(unalias)

在rhel4updae8系统是使用cp命令覆盖文件总是提示要输入yes或no,即使加上-f参数也无法强行覆盖。[2] 方法一: 输入alias命令,看到系统内部使用的是cp的别名。 #alias alias cpcp -i 输入unalias cp命令,解除别名。 unalias cp #&…

增加swap分区

在确定了服务器所需要使用的内存后,需要增加1024M的swap空间 具体操作: 1、dd if/dev/zero of/tmp/swap bs1M count1024M #创建1024M的文件块 2、mkswap /tmp/swap #创建swap文件 3、swapon /tmp/swap #激活swap文件 4、swapon -s #查看swap 5、修改…