Re: Envío de mensajes a múltiples destinos
Luis Orellana Orihuela
luis.ore.ori en gmail.com
Lun Feb 4 12:19:51 CET 2008
Muchas gracias a todos por la información, la verdad es que estoy
aprendiendo mucho. Aunque aun no me aclaro, no veo el modo de enfocarlo. Os
planteo el escenario:
- Hay un servidor (debian) que controla varias salas de unos 50 pc's
cada una de ellas.
- En cada pc de las salas tengo implementado una aplicación, lo único
que hace es escuchar por un puerto. En el momento que le llega un socket
entrante del servidor obtiene el string que éste le manda y lo muestra por
pantalla.
- Ahora mismo, lo que tengo implementado en la máquina servidora es un
pequeño script que manda el string al pc indicado de cualquier sala (crea
socket, envía string y cierra socket sin esperar asentimiento), de manera
que si quiero enviar el mismo string a una sala completa tendría que
hacerlo uno a uno recorriendo todos los pc's de la sala. El problema es que
si un pc está apagado o no escuchando, el connect del socket tarda un
ratillo en dar el error y claro, el problema se agrava si hay mas de uno
apagado (que suele ser lo habitual). El objetivo es que aparezcan en los pcs
de forma casi instantánea (unos segundos de diferencia entre el primero y
último estaría bien) y que la sobrecarga en la máquina servidora sea mínima.
Como primera solución opté por un hilo por socket. Realicé una prueba
con todos los Pcs apagados y aquello empezó a darme errores:
"Original exception was:
Unhadled exception in thread estarted by
Error in sys.excepthook"
- He pensado que una opción sería realizar un primer recorrido para
ver qué pcs de la sala están operativos (encendido y escuchando) -creo que
con select se haría este paso- y una vez conocidos los pcs disponibles
realizar el envío de sockets secuencialmente. como el tráfico de cada socket
(envío de una cadena) es mínimo no creo que el hacerlo multihilo o
multiproceso (fork) me aporte mucho más dinamismo ¿qué opináis?
Bueno no me enrollo más, solo quería saber si el enfoque es correcto o es
una burrada y admito todo tipo de sugerencias. Decir también que hay que
tener en cuenta que mi nivel en Python es mínimo.
Muchas gracias a la lista!
_______________________________________________
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