摘要:之前我是做了錯(cuò)誤記錄直接了,這次情況下因?yàn)樾枰埱笏袌D片,在查了相關(guān)原因,大概是因?yàn)槲翌l繁請求,服務(wù)器關(guān)閉了部門請求連接。在實(shí)際的請求中,加了的延遲被拒絕的情況明顯少了很多,被拒絕重試的次數(shù)最多為次,最后成功地取下了全部圖片。
記遇到的一個(gè)問題:[Errno 104] Connection reset by peer
今天工作上有個(gè)需求,數(shù)據(jù)庫有個(gè)表有將近3萬條url記錄,每條記錄都是一個(gè)圖片,我需要請求他們拿到每個(gè)圖片存到本地。一開始我是這么寫的(偽代碼):
import requests for url in urls: try: r = requests.get(url).content save_image(r) except Exception, e: print str(e)
然而在服務(wù)器上運(yùn)行時(shí), 會(huì)發(fā)現(xiàn)每隔一些請求會(huì)報(bào)類似下面的錯(cuò)誤:
HTTPConnectionPool(host="wx.qlogo.cn", port=80): Max retries exceeded with url: /mmopen/aTVWntpJLCAr2pichIUx8XMevb3SEbktTuLkxJLHWVTwGfkprKZ7rkEYDrKRr5icyDGIvU4iasoyRrqsffbe3UUQXT5EfMEbYKg/0 (Caused by: [Errno 104] Connection reset by peer)
這讓我想起了之前通過hacker news api 在自己電腦上請求一條一條數(shù)據(jù)時(shí),為了加快處理速度,采用多進(jìn)程的方式請求接口,也會(huì)出現(xiàn)這樣的錯(cuò)誤。之前我是做了錯(cuò)誤記錄直接pass了,這次情況下因?yàn)樾枰埱笏袌D片,在google查了相關(guān)原因,大概是因?yàn)槲翌l繁請求,服務(wù)器關(guān)閉了部門請求連接。參見這里, 這里, 這里。
所以我粗暴地這么做,還真解決了:
import requests for url in urls: for i in range(10): try: r = requests.get(url).content except Exception, e: if i >= 9: do_some_log() else: time.sleep(0.5) else: time.sleep(0.1) break save_image(r)
代碼很簡陋,但可以說明大體解決方案,在每個(gè)請求間增加延時(shí)可以減少大部分請求拒絕,但還是存在一些請求被拒絕的,所以在那部分請求被拒絕后,發(fā)起重試,在被拒10次后才善罷甘休(記錄到日志)。在實(shí)際的請求中,加了0.1s的延遲被拒絕的情況明顯少了很多,被拒絕重試的次數(shù)最多為3次,最后成功地取下了全部圖片。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/44274.html
摘要:概述技術(shù)棧錯(cuò)誤詳情報(bào)警機(jī)器人經(jīng)常有如下警告過程確定報(bào)錯(cuò)位置有日志就很好辦首先看日志在哪里打的從三個(gè)地方入手我們自己的代碼沒有的代碼從上下來沒有的代碼在容器中執(zhí)行 bug概述 技術(shù)棧 nginx uwsgi bottle 錯(cuò)誤詳情 報(bào)警機(jī)器人經(jīng)常有如下警告: 1 2018-xx-xxT06:59:03.038Z 660ece0ebaad admin/admin 14 - - Sock...
摘要:版權(quán)出現(xiàn)則重新調(diào)用注冊函數(shù)。中實(shí)例化,調(diào)用用戶定義的函數(shù)服務(wù)循環(huán)監(jiān)聽端口處理請求調(diào)用監(jiān)視請求,處理異常有請求進(jìn)來停止循環(huán)通知外部,循環(huán)已經(jīng)退出注意的用法,只設(shè)置一次,避免使用進(jìn)行頻繁的設(shè)置清除。 SocketServer.py Creating network servers. contents SocketServer.py contents file head BaseSer...
閱讀 3530·2021-10-20 13:49
閱讀 2916·2021-09-29 09:34
閱讀 3812·2021-09-01 11:29
閱讀 3163·2019-08-30 11:01
閱讀 932·2019-08-29 17:10
閱讀 973·2019-08-29 12:48
閱讀 2872·2019-08-29 12:40
閱讀 1425·2019-08-29 12:30