详谈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 相关文章推荐
pyqt4教程之messagebox使用示例分享
Mar 07 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
python实现车牌识别的示例代码
Aug 05 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
python怎么对数字进行过滤
Jul 05 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
python 代码运行时间获取方式详解
Sep 18 Python
python破解同事的压缩包密码
Oct 14 Python
Python anaconda安装库命令详解
Oct 16 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
PHP运行模式的深入理解
2013/06/03 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
python爬虫常用的模块分析
2014/08/29 Python
Python第三方库的安装方法总结
2016/06/06 Python
python模块之paramiko实例代码
2018/01/31 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
softmax及python实现过程解析
2019/09/30 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
Shell如何接收变量输入
2016/08/06 面试题
计算机专业推荐信范文
2013/11/27 职场文书
初中数学教学反思
2014/01/16 职场文书
致百米运动员广播稿
2014/01/29 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
借条如何写
2015/05/26 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏