Estoy casi terminando el módulo para programar fácilmente con procesos. Tengo una clase Proccesses, que se encarga de hacer el fork y gestionar todos los procesos hijos.
Hay dos clases Worker y Controller, que se deben derivar. El Worker contiene el main del proceso El Controller sirve para la comunicación entre los procesos hijos y el padre. Se pueden usar diferentes Worker/Controllers para diferentes hijos. La comunicación se realiza mediante eventos y comandos (Cuando va en dirección de un hijo al padre lo llamo eventos, en caso contrario comando, pero es lo mismo), a través de un socket del tipo af_unix, envío mensajes entre el padre y los hijos, dichos mensajes son un diccionario serializado con cPickle, que contiene el keyword del evento/comando, y todos los datos que le acompañan. Permito que se registren callbacks para los eventos tanto en las instancias de Proccesses como en las de Controller Los callbacks registrados en Controller sólo se lanzan cuando el evento se produce en el proceso asociado a dicho controller. Los callbacks registrados en Proccesses se lanzan cuando el evento se produce en cualquier Controller. ¿Cual sería el comportamiento deseable? 1. Que primero se lancen todos los callbacks de todos los enventos registrados en los controllers, y luego todos los de Proccesses 2. Que primero se lancen todos los callbacks de todos los controllers y luego todos los de proccesses 3. Que para cada evento se lance primero en proccesses y luego en controllers 4. Que para cada evento se lance primero en controllers y luego en proccesses 5. Que un evento no se lance en Processes si está también registrado en controllers 6. Dejar de algún modo que el desarrollador que use el módulo escoja. El caso nº 6 podría complicar bastante la forma de usar el módulo, sobre manera si se da la opción de escoger entre todas las posibilidades. Actualmente lo tengo implementado de forma 1, pero estoy dudando en hacerlo de la forma 4. Para la aplicación para la que estoy desarrollando todo esto, es indiferente un sistema u otro, pues todos los procesos hijos son iguales, y registraré los eventos sólo en el Proccesses. Agradezco sugerencias y comentarios. _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/