详谈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处理文本文件实现生成指定格式文件的方法
Jul 31 Python
Python中生成器和yield语句的用法详解
Apr 17 Python
Python字符串替换实例分析
May 11 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
python实现机器人行走效果
Jan 29 Python
基于DataFrame改变列类型的方法
Jul 25 Python
应用OpenCV和Python进行SIFT算法的实现详解
Aug 21 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
Django框架模板用法入门教程
Nov 04 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 Python
手残删除python之后的补救方法
Jun 26 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
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
php文件上传类的分享
2017/07/06 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
js实现点击按钮复制文本功能
2020/07/20 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
原生js实现滑块区间组件
2021/01/20 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python中使用partial改变方法默认参数实例
2015/04/28 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
PyTorch安装与基本使用详解
2020/08/31 Python
Python实现区域填充的示例代码
2021/02/03 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
大学生党员批评与自我批评
2014/09/28 职场文书
2016高考寄语集锦
2015/12/04 职场文书
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL
Golang连接并操作MySQL
2022/04/14 MySQL
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技