详谈python http长连接客户端

yipeiwu_com6年前Python基础

背景:

线上机器,需要过滤access日志,发送给另外一个api

期初是单进程,效率太低,改为多进程发送后,查看日志中偶尔会出现异常错误(忘记截图了。。。)

总之就是端口不够用了报错

原因:

每一条日志都是一次请求发送给api,短连接产生大量time_wait状态,占用了大量端口

这种高并发导致的大量time_wait状态内核调优基本是没用的,后来改为长连接解决问题

第一版短连接版本关键代码如下

因涉及具体业务信息,只贴出了关键部分代码

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长连接客户端就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用python写的opencv实时监测和解析二维码和条形码

使用python写的opencv实时监测和解析二维码和条形码

今天,我实现了一个很有趣的demo,它可以在视频里找到并解析二维码,然后把解析的内容实时在屏幕上显示出来。 然后我们直入主题,首先你得确保你装了opencv,python,zbar等环境...

python实现差分隐私Laplace机制详解

python实现差分隐私Laplace机制详解

Laplace分布定义: 下面先给出Laplace分布实现代码: import matplotlib.pyplot as plt import numpy as np def...

Python3使用requests发闪存的方法

requests是一个python 轻量的http客户端库,相比python的标准库要优雅很多。接下来通过本文给大家介绍Python3使用requests发闪存的方法,一起学习吧。 使...

Python实现的简单线性回归算法实例分析

本文实例讲述了Python实现的简单线性回归算法。分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结...

python使用jieba实现中文分词去停用词方法示例

前言 jieba 基于Python的中文分词工具,安装使用非常方便,直接pip即可,2/3都可以,功能强悍,十分推荐。 中文分词(Chinese Word Segmentation) 指...