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.pswp.cn/news/376718.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376718.shtml
英文地址,請注明出處:http://en.pswp.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、修改…