python – pycurl / curl不遵循CURLOPT_TIMEOUT选项
发布时间:2020-12-16 22:20:24 所属栏目:Python 来源:网络整理
导读:我有一个多线程脚本,当它连接到服务器但服务器不发回任何东西时偶尔会冻结. Netstat显示连接的tcp套接字.即使我设置了TIMEOUT,也会发生这种情况.超时脚本中的超时工作正常.这是一些示例代码. def xmlscraper(url): htmlpage = StringIO.StringIO() rheader =
我有一个多线程脚本,当它连接到服务器但服务器不发回任何东西时偶尔会冻结. Netstat显示连接的tcp套接字.即使我设置了TIMEOUT,也会发生这种情况.超时脚本中的超时工作正常.这是一些示例代码.
任何帮助将不胜感激!几个星期以来一直试图解决这个问题. 编辑: EDIT2:
该代码中的Pycurl似乎正常超时.所以我猜它与网址的数量有关? GIL? EDIT3: 我认为它可能与libcurl本身有关,因为当我检查脚本时libcurl仍然连续几个小时连接到服务器.如果pycurl正确地超时,则套接字将被关闭. 最佳答案
我修改了你的’edit2’代码来生成多个线程,它在我的机器上工作正常(Ubuntu 10.10 with Python 2.6.6)
我可以生成100个线程,所有超时都是3秒(就像我指定的那样). 我不会指责GIL和线程争用:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |