AsyncHTTPClient和requests库为什么不关闭连接?

转自:https://www.zhihu.com/question/38614659


测试报告发现网络链接没有关闭。后来发现是由于复用了asynchttpclient,所以一直没有关闭连接。

摘自知乎

之前一段时间,一直在用tornado的异步客户端。 


http_client = AsyncHTTPClient()
response = yield http_client.fetch(url, method=‘POST’, body=data)
response.body…..

但是从来没写过:
http_client.close()这样的代码。



类似的,同步的阻塞请求,我一般使用python的requests库:

response = requests.post(url, body)
response.content

但是也没有调用过类似close()的方法, 

按理来说,数据库连接,文件句柄,网络连接,这些非托管资源,不是都应该手动去关闭的么?我记得比较“低级”的http库确实会调用关闭: 
HTTPConnection.close(),

那么我的问题是

1.我在tornado的http客户端,和requests库中,如何关闭它们?
2.是否是因为本质上,这两个客户端在关闭方式上就是不同的。
3.如果不关,我的服务长期这样跑着,总有一天会大量内存泄露吧?


作者:彭泉鑫
链接:https://www.zhihu.com/question/38614659/answer/77237485
来源:知乎
著作权归作者所有,转载请联系作者获得授权。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值