[pyar] Pub Sub & Thread
Pablo M. Mana
pablo.m.mana en gmail.com
Dom Abr 15 22:34:55 ART 2012
Hola Gente:
Si alguien quiere que valla derecho al grano lea a partir de ***.
De a poco sigo dándole forma mi IM. Tenia que aprender un montón de
cosas para llegar a buen puerto, mas de las que me hubiera imaginado y
la verdad es que no todos los días me pongo hacer algo. Una de las
cosas que mas me intrigaba es como comunicar dos librerías dirigidas
por eventos. Una en el thread principal y las otra en un thread
auxiliar Vi alguna cosas pero mucho no me convencían, hay muchísimo
escrito sobre el tema pero en general se orienta a casos en los que el
thread auxiliar desarrolla una tarea pesada, quizás tarde un rato en
hacerse en algún momento termina. En todo el tiempo el tiempo que dura
la ejecución ese thread auxiliar en general recibe un mensaje inicial
del principal que le dice que hacer , luego el auxiliar quizás manda
alguna actualización diciendo como va y un mensaje al final. Muy poca
interacción para lo que nesecito. Buscando otra cosa me tope con
Pypubsub, me encanto.
****
Tengo un Thread auxiliar que ejecuta una librería dirigida eventos y
en el thread principal en el que esta wxpython
Es fácil comunicar algo desde el thread auxiliar mediante un
wx.callafter que invoca un pubsub.sendmensagge al thread principal
Dentro del thread principal para pasar mensajes también hago lo mismo
Desde el thread principal al auxiliar no puedo aplicar esa receta, al
menos con pypubsub [0] y es una lastima por que es re comodo.
Buscando un poco veo que hay otras librerías similares algunas
extraidas de Django [1] [2] y otras desarrolladas desde 0 [3]
[4] [5]. Pero en ninguna veo que pueda saltear mensajes de thread en
thread (aclaro que mire la documentación poniendo thread en el
buscador de firefox ). Asi que la pregunta es esta ¿hay forma tener lo
que pypubsub llama mensaje pero con el alcance de un queue (thread
safe en lo posible) ?.
[0] http://pubsub.sourceforge.net/
[1] https://github.com/olivierverdier/dispatch
[2] https://github.com/theojulienne/PySignals
[3] http://pydispatcher.sourceforge.net/
[4] https://github.com/11craft/louie
[5] http://home.gna.org/py-notify/
Saludos.
Pablo M. Mana
More information about the pyar
mailing list