[pyar] Se busca: Backport de modulo de multiprocessing de py3k a 2.7

Andres Riancho andres.riancho en gmail.com
Vie Ene 30 11:38:27 ART 2015


Ezequiel, el zerorpc-python [0][1] usa zeromq por detrás, asi que
estamos bien :)

[0] http://zerorpc.dotcloud.com/
[1] https://github.com/dotcloud/zerorpc-python

2015-01-30 11:33 GMT-03:00 Ezequiel Brizuela [aka EHB or qlixed]
<qlixed en gmail.com>:
> Podrias usar zeromq, no necesitas broker y podes usar ipc para comunicar las
> partes q seria mas liviano en tu caso creo.
> Zeromq es muy bueno para cosas mas pequeñas, comparado con rabbitmq. Y
> escala muy bien.
>
>
> El vie, 30 de enero de 2015 09:40, Andres Riancho <andres.riancho en gmail.com>
> escribió:
>
>> Claro, eso requiere que el usuario se instale rabbitmq. Para un
>> software en un server puede andar, pero para algo que corre en una
>> workstation... no lo veo.
>>
>> 2015-01-30 9:36 GMT-03:00 Javier <javiermarcon en gmail.com>:
>> > Yo implementaria un sistema de mensajetria entre procesos usando
>> > rabbitmq, pero eso puede ser demasiado pesado.
>> >
>> > Enviado desde mi telefono
>> >
>> > -----Original Message-----
>> > From: Andres Riancho <andres.riancho en gmail.com>
>> > Sender: "pyar" <pyar-bounces en python.org.ar>Date: Fri, 30 Jan 2015
>> > 08:56:33
>> > To: Python Argentina<pyar en python.org.ar>
>> > Reply-To: Python Argentina <pyar en python.org.ar>
>> > Subject: Re: [pyar] Se busca: Backport de modulo de multiprocessing de
>> > py3k
>> >         a 2.7
>> >
>> > 2015-01-30 6:20 GMT-03:00 Alejandro Santos <listas en alejolp.com>:
>> >> Combinar multiprocessing y threading puede ser problematico, por eso
>> >> desde la 3.4 existe lo que vos estás buscando.
>> >>
>> >> El orden de crear cada uno es importante, vos estas primero creando el
>> >> thread y despues el multiprocess, podes hacerlo al reves para no
>> >> heredar con el fork los sockets de tus threads.
>> >>
>> >> $ python qqq.py
>> >> frames from main1: [(140696442406656, <frame object at 0x75d1c0>)]
>> >> frames from main2: [(140696318297856, <frame object at
>> >> 0x7ff664000f40>), (140696442406656, <frame object at 0x75d1c0>)]
>> >> frames from worker: [(140696442406656, <frame object at 0x7c6530>)]
>> >
>> > Claro, pero igual este era simplemente un ejemplo de las cosas
>> > inesperadas que pasan con multiples threads y fork(), otra que me paso
>> > es que las tools de profiling (meliae, yappi, pytracemalloc) se
>> > vuelven locas y no reportan cosas coherentes. Algunas que he escuchado
>> > que pasan son dead-locks (en malloc por ejemplo) y en otras partes
>> > donde haya locks mi codigo/librerias.
>> >
>> >> Como alternativa podes hacer manualmente un exec de un python para
>> >> tener algo limpio sin thread del parent (asi funcionan spawn y
>> >> forkserver), pero tenes que hacer la sincronizacion a mano.
>> >
>> > Si, estaba pensando un poco en eso y creo que llegue a una
>> > arquirectura, algo compleja pero es lo que hay...
>> >     * El MainProcess levanta un proceso Parser usando subprocess.Popen
>> >     * El proceso Parser levanta un server de zerorpc-python [0] y
>> > escucha en un unix-socket
>> >     * MainProcess utiliza zerorpc-python para enviar datos, recibir
>> > resultados, etc. del proceso remoto
>> >     * El proceso Parser implementa un signal handler para Ctrl+C, en
>> > el cual hace zerorpc.stop(), cleanup, etc.
>> >     * Si MainProcess ve que el proceso Parser tarda mas que un tiempo
>> > determinado en completar una operacion entonces le manda un signal
>> > para que el proceso muera y levanta otro. Algo similar ocurre cuando
>> > MainProcess ha terminado y quiere matar a Parser para cerrar
>> > limpiamente.
>> >
>> > Esta es la manera que encontre hasta ahora para a) tener un proceso
>> > 100% distinto y b) comunicarme limpiamente con él
>> >
>> > Algun otro metodo de RPC que recomienden para python fuera de zerorpc?
>> >
>> > PD: Ya me parecia raro no recibir una respuesta de Alejandro "tiene
>> > todas las respuestas a mis preguntas" Santos :)
>> >
>> > [0] https://github.com/dotcloud/zerorpc-python
>> >
>> >>
>> >>
>> >> 2015-01-28 2:41 GMT+01:00 Andres Riancho <andres.riancho en gmail.com>:
>> >>> Lista,
>> >>>
>> >>>     Ando buscando un backport del modulo de multiprocessing de py3k a
>> >>> 2.7. Lo mas cercano que encontre fue el billiard de celery, pero al
>> >>> parecer todavia su backport no esta terminado/funcional.
>> >>>
>> >>>     Lo que me interesa de la nueva version del modulo en py3k es la
>> >>> funcionalidad de "spawn" [0] para los sub-procesos, la cual es
>> >>> diferente de la unica provista en 2.7 que es os.fork()
>> >>>
>> >>>     Si estan interesados en el porque de esta necesidad pueden leer
>> >>> [1][2].
>> >>>
>> >>> [0]
>> >>> https://docs.python.org/3.4/library/multiprocessing.html#multiprocessing.set_start_method
>> >>> [1]
>> >>> http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them
>> >>> [2] https://gist.github.com/andresriancho/957180a06be43fa9c654
>> >>>
>> >>> Saludos,
>> >>> --
>> >>> Andrés Riancho
>> >>> Project Leader at w3af - http://w3af.org/
>> >>> Web Application Attack and Audit Framework
>> >>> Twitter: @w3af
>> >>> GPG: 0x93C344F3
>> >>> _______________________________________________
>> >>> pyar mailing list pyar en python.org.ar
>> >>> http://listas.python.org.ar/listinfo/pyar
>> >>>
>> >>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >>>
>> >>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> >>> Argentina - http://www.usla.org.ar
>> >>
>> >>
>> >>
>> >> --
>> >> Alejandro Santos
>> >> _______________________________________________
>> >> pyar mailing list pyar en python.org.ar
>> >> http://listas.python.org.ar/listinfo/pyar
>> >>
>> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >>
>> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> >> Argentina - http://www.usla.org.ar
>> >
>> >
>> >
>> > --
>> > Andrés Riancho
>> > Project Leader at w3af - http://w3af.org/
>> > Web Application Attack and Audit Framework
>> > Twitter: @w3af
>> > GPG: 0x93C344F3
>> > _______________________________________________
>> > pyar mailing list pyar en python.org.ar
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >
>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> > Argentina - http://www.usla.org.ar
>> > _______________________________________________
>> > pyar mailing list pyar en python.org.ar
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >
>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> > Argentina - http://www.usla.org.ar
>>
>>
>>
>> --
>> Andrés Riancho
>> Project Leader at w3af - http://w3af.org/
>> Web Application Attack and Audit Framework
>> Twitter: @w3af
>> GPG: 0x93C344F3
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3


More information about the pyar mailing list