帝王 发表于 2017-4-27 09:59:06

Python urllib2产生僵尸进程

最近发现,Python代码会产生很多僵尸进程,之前未发现,自从使用urllib2模块发Http请求之后,便产生了大量僵尸进程,确定是由于urllib2产生,
原始代码如下:

req=urllib2.Request(url)
urllib2.urlopen(req)

最开始,想当然的任务,HTTP请求不是长连接,连接会自动释放,犯了大错,虽然http不是长连接,但是打开连接之后,一些资源还是需要自己关闭,后面将代码修改为:

req=urllib2.Request(url)
response = urllib2.urlopen(req)
response.close()

结果过了一段时间发现,还是会产生僵尸进程,通过日志发现,有很多104的HTTP错误,基本确定是由于http请求失败之后,导致僵尸进程,于是在请求的时候加上超时限制

req=urllib2.Request(url)
response = urllib2.urlopen(req,timeout=10)
response.close()

经过这样修改之后,暂未发现僵尸进程,后续还需继续观察
页: [1]
查看完整版本: Python urllib2产生僵尸进程