详谈python http长连接客户端

作者:jingxian 时间:2023-07-30 22:37:01 

背景:

线上机器,需要过滤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,长连接,客户端
0
投稿

猜你喜欢

  • python实现删除列表中某个元素的3种方法

    2023-02-08 16:01:59
  • python爬虫利用代理池更换IP的方法步骤

    2023-10-04 05:50:38
  • 如何通过Python实现定时打卡小程序

    2023-10-20 14:11:33
  • TensorFlow神经网络构造线性回归模型示例教程

    2023-07-18 08:35:13
  • windows 10下安装搭建django1.10.3和Apache2.4的方法

    2022-01-01 01:07:51
  • Python实现带图形界面的炸金花游戏

    2021-06-21 15:41:56
  • Python使用正则表达式过滤或替换HTML标签的方法详解

    2023-02-08 10:49:52
  • 怎样在MySQL数据库中导出整个数据库

    2008-12-31 15:13:00
  • 浅谈Python数据类型之间的转换

    2023-12-06 03:58:31
  • Python学习笔记之字符串和字符串方法实例详解

    2021-07-13 19:13:16
  • fso对象CreateTextFile方法调用时“无效的过程调用或参数”错误

    2009-05-26 15:39:00
  • 按日期打印Python的Tornado框架中的日志的方法

    2023-09-29 12:28:13
  • 考虑SQL Server安全时所应注意的几个方面

    2009-01-04 13:57:00
  • python实现文件助手中查看微信撤回消息

    2023-09-03 07:23:50
  • 探讨如何计算age的sql函数

    2024-01-21 12:44:31
  • Python计算三角函数之asin()方法的使用

    2023-08-04 22:31:46
  • 仿淘宝网站的导航标签效果!

    2008-11-05 12:37:00
  • 详解Python中命令行参数argparse的常用命令

    2022-06-06 15:59:30
  • 计划备份mysql数据库

    2009-03-09 14:34:00
  • Go-ethereum 解析ethersjs中产生的签名信息思路详解

    2023-08-05 21:34:49
  • asp之家 网络编程 m.aspxhome.com