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