[pyar] Duda, procesos e instancias

Mariano Reingart reingart en gmail.com
Lun Nov 14 16:26:07 ART 2011


2011/11/14 Alejandro Santos <listas en alejolp.com>:
> 2011/11/14 Alejandro Santos <listas en alejolp.com>:
>>
>> Lo que estás queriendo hacer se puede solucionar usando un Proxy. En
>> la doc del módulo multiprocessing podés ver un par de ejemplo de como
>> usar los managers. [2] [3]
>>
>> [1] http://stackoverflow.com/questions/986006/python-how-do-i-pass-a-variable-by-reference
>> [2] http://docs.python.org/library/multiprocessing.html#proxy-objects
>> [3] http://docs.python.org/library/multiprocessing.html#module-multiprocessing.managers
>>
>
> Un poco mejor explicado: un Proxy te permite ejecutar desde un TPT
> (thread/proceso/tarea/etc.) codigo desde otro TPT, haciendo una simple
> llamada a un método/función.
>
> Por ejemplo, si querés que desde tu tarea1 se codigo como si fuese la
> tarea2 la que lo ejecuta, tenés dos opciones:
>
> (a) Usar una Queue o Fifo para avisarle desde el otro TPT que haga la llamada:
>
> def tarea1(queue, queue2):
>    queue.append("llamá a raw_input")
>    y = queue2.pop()
>
> def tarea2(queue, queue2):
>    while 1:
>        x = queue.pop()
>        if x == "llamá a raw_input":
>            y = raw_input()
>            queue2.append(y)
>
> (b) Usar un proxy:
>
> def llamador_a_raw_input():
>    return raw_input()
>
> def tarea1(llamador):
>    # Acá se hace la magia para ejecutar raw_input en el TPT tarea2
>    y = llamador()
>
> def tarea2():
>    manager.serve_forever()
>
> def main():
>    llamador = manager.nuevo_proxy_a_una_funcion(llamador_a_raw_input)
>    proceso1 = nuevo_proceso(tarea1)
>    proceso2 = nuevo_proceso(tarea2)
>    proceso1.start()
>    proceso2.start()
>
> --

Quizas esto pueda ayudar:

http://code.google.com/p/web2py/source/browse/gluon/debug.py

Es una pipa implementada con queue utilizada como e/s para PDB y así
poder depurar de manera remota aplicaciones web2py.

Tengo una idea de extenderlo sobre BDB para no necesitar una consulta,
cualquier cosa avisame,

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com



More information about the pyar mailing list