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

Ezequiel Brizuela [aka EHB or qlixed] qlixed en gmail.com
Vie Ene 30 11:33:42 ART 2015


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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150130/245ed0a7/attachment.html>


More information about the pyar mailing list