详谈python http长连接客户端


Posted in Python onJune 12, 2017

背景:

线上机器,需要过滤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 urlopen 使用小示例
Sep 06 Python
Python编程之Re模块下的函数介绍
Oct 28 Python
深入理解Python中的*重复运算符
Oct 28 Python
用Pygal绘制直方图代码示例
Dec 07 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python 变量类型详解
Oct 10 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
python使用递归的方式建立二叉树
Jul 03 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
python numpy中multiply与*及matul 的区别说明
May 26 Python
Jupyter Notebook内使用argparse报错的解决方案
Jun 03 Python
浅谈Python 的枚举 Enum
Jun 12 #Python
sublime text 3配置使用python操作方法
Jun 11 #Python
python爬虫之百度API调用方法
Jun 11 #Python
python数据处理实战(必看篇)
Jun 11 #Python
requests和lxml实现爬虫的方法
Jun 11 #Python
Python实现自动登录百度空间的方法
Jun 10 #Python
Python实现获取命令行输出结果的方法
Jun 10 #Python
You might like
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python实现神经网络感知器算法
2017/12/20 Python
Python堆排序原理与实现方法详解
2018/05/11 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
pyshp创建shp点文件的方法
2018/12/31 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
基于python实现操作redis及消息队列
2020/08/27 Python
python简单实现9宫格图片实例
2020/09/03 Python
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
小区门卫管理制度
2014/01/29 职场文书
七年级政治教学反思
2014/02/03 职场文书
询价采购方案
2014/06/09 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
php中pcntl_fork详解
2021/04/01 PHP
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技