Re: [Python-es] Respuesta lentísima de SimpleXMLRPCServer en windows xp [SOLUCIONADO]
heimy
ricardo.cardenes en gmail.com
Mie Dic 16 23:48:39 CET 2009
2009/12/16 Sio2 <aussiliar en online.fr>:
>
> 1 0.000 0.000 4.524 BaseHTTPServer.py:478(address_string)
>
> Ahí están mis famosos 4 segundos y medio. Ahí y en otras funciones que
> supuse que invocaban a esta y por eso también tardaban en ejecutarse 4,5
> segundos.
>
> He ido a la documentación y he leído:
>
> address_string()
> Returns the client address, formatted for logging. A name lookup is
> performed on the client's IP address.
Jojojo... Pena que llegué tarde a la conversación. Te iba a sugerir
problemas de red y, mira tú, era por problemas de resolución inversa
:D ¡Qué clásico!
> ¿Cómo solucionaríais el problema de una forma elegante? Supongo que
> redefiniendo el método address_string de BaseHTTPRequestHandler, pero
> cómo, porque no tengo ni idea de cómo conocer la ip del cliente dentro
> de esa clase.
En la docu de BaseHTTPServer tienes una indicación de por dónde tirar:
-----
log_message( format, ...)
Logs an arbitrary message to sys.stderr. This is typically overridden
to create custom error logging mechanisms. The format argument is a
standard printf-style format string, where the additional arguments to
log_message() are applied as inputs to the formatting. The client
address and current date and time are prefixed to every message
logged.
----
Uno de los parámetros de inicialización de SimpleXMLRPCServer es
"requestHandler". Por defecto toma SimpleXMLRPCRequestHandler, que
hereda de BaseHTTPRequestHandler y tiene un "log_message". Si creas un
derivado de SimpleXMLRPCRequestHandler redefiniendo log_message de
alguna manera que te convenga (imprimiendo la IP a secas en lugar del
nombre, por ejemplo) y le pasas al servidor un
requesHandler=ClaseDerivada, pues ya tendrías el problema resuelto.
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es