[pyar] usando multiprocessing

Anielkis Herrera anielkis en gmail.com
Jue Dic 12 12:12:04 ART 2013


gracias por responder tan rápido, Hernan .. por lo visto pueden pasar 1000
veces lo mismo.. y a las 1000+1 verse de forma distinta.. solucioné el
problema y .. es un poco extraño.. tenía, como "en la vieja escuela",
prints antes y después de cada sección crítica, incluso con ese join(línea
131) y nunca se mostraba el de después del join .. volví a revisar el
código y luego de esa línea tenía un join de una antigua queue.. y daba una
excepción, pero tampoco me llegaba a salir el print de la excepción..
eliminándolo.. todo fluyó

no obstante, aqui está el gist: https://gist.github.com/DimShadoWWW/7929379
aún debo tener "varios" problemas ahi y varias "mejores formas" de hacerlo,
me gustaría saber sus opiniones.. pues si algo he aprendido.. es que
mientras más se aprende.. más cosas "se ve que" faltan por aprender

muchas gracias,


El 12 de diciembre de 2013 09:49, Hernan
Grecco<hernan.grecco en gmail.com>escribió:

> Hola Anielkis,
>
> Podes subir el programa completo a gist de github?
>
> Hernan
>
>
>
> 2013/12/12 Anielkis Herrera <anielkis en gmail.com>:
> > Hola, buenos días.. les escribo porque llevo varios días intentando
> > implementar un sistema de gestión de procesos usando multiprocessing y
> sigo
> > teniendo un problema con las queues de multiprocessing.. el sistema
> funciona
> > de esta forma:
> >
> > tengo un proceso que revisa una tabla en una base de datos y según la
> > información, la inserta en una queue de tipo
> > multiprocessing.JoinableQueue(), luego creo otra "de resultados" de tipo
> > multiprocessing.Queue() donde se almacenarán los "resultados de los
> > procesos" que procesarán la primera.
> >
> > tengo una clase: "class Worker(multiprocessing.Process)" donde en el
> método
> > run defino lo que deseo hacer con la queue (llamando a
> inqueue.task_done()
> > siempre que termina el proceso ) que básicamente executa comandos por
> > subprocess.popen ..
> > e invoco a esa clase de esta forma:
> >
> > consumers = [ Worker(inqueue, outqueue)
> >                   for i in xrange(10) ]
> >
> > for w in consumers:
> >     w.start()
> >
> > inqueue.join()  # <---- aqui es donde se queda
> >
> > ...........
> > el problema es que todo funciona bien, hasta el .join de la
> JoinableQueue,
> > incluso, si hago "print inqueue.qsize()" antes del join, poniendo una
> espera
> > de tiempo, para que el Worker termine la tarea que le puse.. y el qsize
> dice
> > que tiene 0 en la queue .. se queda ahi, esperando y no continúa..
> >
> > llevo varios día probando, incluso, usé multiprocessing.Queue() en esa
> > queue, y usé un método en vez del Worker, con una lista de procesos
> Worker y
> > un jopin al final y aún así se queda esperando, en el join
> >
> > traté de explicarme lo mejor posible.. la verdad es que llegué a
> > "bloquearme" .. y ya no sé qué más probar en ese código... sé que esto es
> > fácil hacerlo con herramientas como celery, pero no me es posible usarla
> en
> > estos momentos.. y he estado revisando la documentación que he
> encontrado en
> > internet y no encuentro ninguna otra pista que seguir
> >
> > el entorno donde debe funcionar es un centos 6, que tiene python 2.6.6 y
> lo
> > he probado hasta python 2.6.8 y siempre mantiene el comportamiento
> >
> > alguna idea que deba revisar? muchas gracias de antemano
> >
> > --
> > _______________________________
> >         Anielkis Herrera González
> >
> > _______________________________________________
> > 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
>



-- 
_______________________________
        Anielkis Herrera González
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20131212/1261b277/attachment.html>


More information about the pyar mailing list