Python urllib2发生僵尸进程
Python urllib2产生僵尸进程
最近发现,Python代码会产生很多僵尸进程,之前未发现,自从使用urllib2模块发Http请求之后,便产生了大量僵尸进程,确定是由于urllib2产生,
原始代码如下:
最开始,想当然的任务,HTTP请求不是长连接,连接会自动释放,犯了大错,虽然http不是长连接,但是打开连接之后,一些资源还是需要自己关闭,后面将代码修改为:
结果过了一段时间发现,还是会产生僵尸进程,通过日志发现,有很多104的HTTP错误,基本确定是由于http请求失败之后,导致僵尸进程,于是在请求的时候加上超时限制
经过这样修改之后,暂未发现僵尸进程,后续还需继续观察
最近发现,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 楼
jellyfish
前天
try httplib2