serve_forever

Oswaldo Hernández listas en soft-com.es
Jue Mayo 22 11:29:55 CEST 2008


 >Luis Garcia Merino escribió:
>> ----- Original Message ----
>> From: Oswaldo Hernández <listas en soft-com.es>
>> To: Lista de discusión sobre python en castellano <python-es en aditel.org>
>> Sent: Thursday, May 22, 2008 10:38:33 AM
>> Subject: [Python-es] serve_forever
>> 
>> Hola,
>> 
>> En una aplicacion utilizo el modulo SocketServer.ThreadingTCPServer el cual me funciona muy bien.
>> 
>> El problema con el que me encuentro es con el metodo serve_forever. Este metodo, como su nombre 
>> indica, maneja las conexiones entrantes de una forma muy bien explicada en su doc:
>> 
>>          """Handle one request at a time until doomsday."""
>> 
>> Bueno, el problema con el que me encuentro es ese, como detener el servidor desde otro thread. No 
>> encuantro ningúm metodo para ello en el modulo.
>> 
>> He probado a cerrar el socket del servidor, pero no termina de funcionar bien puesto que hasta que 
>> el servidor necesite utilizarlo no salta la excepción, posiblemente sea debido a que el cierre se 
>> realiza desde otro thread.
>> 
>> Finalmente he conseguido hacerlo de una forma un tanto chapucera, pero la pregunta es:
>> 
>> ¿Alguien sabe como finalizar el servidor de una forma limpia?
>> 

 >
 >
 >no lo he hecho, pero supongo que puedes programar el servidor para que al recibir determinada 
orden >a través del socket se termine la ejecución con server_close()... imagino que también podría 
 >hacerse con kill y subprocess... aunque creo que la primera opción es más "limpia", pero no sé si 
 >lo suficientemente limpia para ti  :)


ThreadingTCPServer crea automaticamente un nuevo thread con su manejador cuando recibe una conexión, 
este manejador puede recibir el mensaje de cierre y finalizrse a si mismo, pero continuo con el 
mismo problema de finalizar el thread del servidor.

Sobre el kill, no ver forma de hacer kill a un thread.

Saludos,



-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
_______________________________________________
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