2010-11-21 10 views
5

estoy funcionando mi aplicación en el servidor de producción y es que me da este error:URLError único: <error urlopen tiempo de espera> error que estoy recibiendo

File "/usr/lib/python2.6/urllib2.py", line 391, in open 
    response = self._open(req, data) 

File "/usr/lib/python2.6/urllib2.py", line 409, in _open 
    '_open', req) 

File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain 
    result = func(*args) 

File "/usr/lib/python2.6/urllib2.py", line 1161, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 

File "/usr/lib/python2.6/urllib2.py", line 1136, in do_open 
    raise URLError(err) 

URLError: <urlopen error timed out> 

Por cierto que entienden la error. Pero esto no es interesante. La parte interesante es que cuando ejecuto esto en mi local machine or test server, todo funciona bien. Es demasiado molesto.

Cada donde estoy usando el mismo sistema operativo:

ubuntu 10.04 

Cuál podría ser la razón posible? Cualquier ayuda será apreciada.

Respuesta

1

¿Puede recuperar la URL en cuestión con wget en su servidor de producción? Esto podría ser un problema de firewall en lugar de un error de Python.

+0

Hacer wget funciona en esa URL en el servidor de producción – scoparta

0

Parece razonable que la máquina de producción tarde mucho más tiempo que la prueba o que las máquinas locales debido a la falta de aprovisionamiento o al exceso de carga en el sistema de producción, por lo que debería verificar cuáles son sus tiempos de espera y no 'No accidentalmente establecer el tiempo de espera global demasiado agresivamente.

Probablemente esto sea un problema con socket.setdefaulttimeout/socket.settimeout. La llamada a urllib2.urlopen debería aceptar un argumento de tiempo de espera en python2.6. Pruebe urllib2.urlopen (..., timeout = None) y vea si eso resuelve las cosas.

También confirmaría el valor de socket.getdefaulttimeout antes de realizar su llamada urlopen.

Cuestiones relacionadas