daizw/judou

urllib2里还是设置一下timeout和重试次数

Opened this issue · 6 comments

rt

Original issue reported on code.google.com by twinsant on 12 Jun 2009 at 5:05

python 2.6 的 urllib2 已经支持 timeout 参数

Original comment by hongqn on 1 Oct 2009 at 2:50

原则上期望句读源代码能兼容到python2.4,因为服务器上的比��
�老。。。。难道豆瓣已经进化到
2.6了?

Original comment by twinsant on 4 Oct 2009 at 12:36

老 python 有几个办法:

1. 用 pycurl
2. 用 thread做watchdog
3. backport 2.6 的 urllib2

建议用1

Original comment by hongqn on 6 Oct 2009 at 2:38

不是有一种方法设置socket.timeout么?

Original comment by twinsant on 7 Oct 2009 at 5:09

2.6之前的 urllib2 中创建的 socket 
都是调用者不可见的,2.6的改动其实就是把传入的 timeout 
参数一路传递到创建 
socket 的地方设置上。如果想直接使用 socket.settimeout 
,就是方法3:把 2.6 的代码backport回来。

也可以用socket的全局设置,即 socket.setdefaulttimeout 
,这个会影响整个进程内的 socket timeout。如果句读是要以
库的形式存在而非独立应用的形式存在,则改变全局设定我��
�得是不合适的。

Original comment by sophy...@gmail.com on 7 Oct 2009 at 6:20

看来用pycurl是个好方案,不知道有哪位热心同学愿意做这件��
�情呢?

Original comment by twinsant on 8 Oct 2009 at 2:28