詳談python http長連接客戶端
背景:
線上機器,需要過濾access日志,發(fā)送給另外一個api
期初是單進程,效率太低,改為多進程發(fā)送后,查看日志中偶爾會出現(xiàn)異常錯誤(忘記截圖了。。。)
總之就是端口不夠用了報錯
原因:
每一條日志都是一次請求發(fā)送給api,短連接產(chǎn)生大量time_wait狀態(tài),占用了大量端口
這種高并發(fā)導(dǎo)致的大量time_wait狀態(tài)內(nèi)核調(diào)優(yōu)基本是沒用的,后來改為長連接解決問題
第一版短連接版本關(guān)鍵代碼如下
因涉及具體業(yè)務(wù)信息,只貼出了關(guān)鍵部分代碼
import pycurl where True: url=myqueue.get() send_msg=pycurl.Curl() send_msg.setopt(pycurl.URL,url) send_msg.perform() print send_msg.getinfo(send_msg.HTTP_CODE)
修改后長連接版本如下:
采用requests庫
import requests
client=requests.session()
headers = {'Content-Type': 'application/json', 'Connection': 'keep-alive'}
where True:
url=myqueue.get()
r=client.get(url,headers=headers)
print r.status_code
以上這篇詳談python http長連接客戶端就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python HTTP客戶端自定義Cookie實現(xiàn)實例
- 使用httplib模塊來制作Python下HTTP客戶端的方法
- 使用基于Python的Tornado框架的HTTP客戶端的教程
- 如何用python實現(xiàn)一個HTTP連接池
- Python Http請求json解析庫用法解析
- python3從網(wǎng)絡(luò)攝像機解析mjpeg http流的示例
- 基于Python模擬瀏覽器發(fā)送http請求
- Python requests HTTP驗證登錄實現(xiàn)流程
- Python實現(xiàn)http接口自動化測試的示例代碼
- 詳解用python -m http.server搭一個簡易的本地局域網(wǎng)
- python用700行代碼實現(xiàn)http客戶端
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)AlexNet分類模型訓(xùn)練貓狗數(shù)據(jù)集
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)AlexNet分類模型訓(xùn)練貓狗數(shù)據(jù)集,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
python使用for...else跳出雙層嵌套循環(huán)的方法實例
這篇文章主要給大家介紹了關(guān)于python使用for...else跳出雙層嵌套循環(huán)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
深入了解和應(yīng)用Python 裝飾器 @decorator
在編程過程中,經(jīng)常遇到這樣的場景:登錄校驗,權(quán)限校驗,日志記錄等,這些功能代碼在各個環(huán)節(jié)都可能需要,但又十分雷同,通過裝飾器來抽象、剝離這部分代碼可以很好解決這類場景,這篇文章主要介紹了Python的裝飾器 @decorator,探討了使用的方式,需要的朋友可以參考下2019-04-04
Python安裝Flask環(huán)境及簡單應(yīng)用示例
這篇文章主要介紹了Python安裝Flask環(huán)境及簡單應(yīng)用,結(jié)合實例形式分析了Flask框架的安裝、以及路由、重定向、cookie等相關(guān)操作實現(xiàn)方法,需要的朋友可以參考下2019-05-05

