<div dir="ltr"><div><div><div><div>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ó<br>
<br>no obstante, aqui está el gist: <a href="https://gist.github.com/DimShadoWWW/7929379">https://gist.github.com/DimShadoWWW/7929379</a><br></div></div></div>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</div>
<div><br></div>muchas gracias,<br><div class="gmail_extra"><br><br><div class="gmail_quote">El 12 de diciembre de 2013 09:49, Hernan Grecco<span dir="ltr"><<a href="mailto:hernan.grecco@gmail.com" target="_blank">hernan.grecco@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola Anielkis,<br>
<br>
Podes subir el programa completo a gist de github?<br>
<br>
Hernan<br>
<br>
<br>
<br>
2013/12/12 Anielkis Herrera <<a href="mailto:anielkis@gmail.com">anielkis@gmail.com</a>>:<br>
<div><div class="h5">> Hola, buenos días.. les escribo porque llevo varios días intentando<br>
> implementar un sistema de gestión de procesos usando multiprocessing y sigo<br>
> teniendo un problema con las queues de multiprocessing.. el sistema funciona<br>
> de esta forma:<br>
><br>
> tengo un proceso que revisa una tabla en una base de datos y según la<br>
> información, la inserta en una queue de tipo<br>
> multiprocessing.JoinableQueue(), luego creo otra "de resultados" de tipo<br>
> multiprocessing.Queue() donde se almacenarán los "resultados de los<br>
> procesos" que procesarán la primera.<br>
><br>
> tengo una clase: "class Worker(multiprocessing.Process)" donde en el método<br>
> run defino lo que deseo hacer con la queue (llamando a inqueue.task_done()<br>
> siempre que termina el proceso ) que básicamente executa comandos por<br>
> subprocess.popen ..<br>
> e invoco a esa clase de esta forma:<br>
><br>
> consumers = [ Worker(inqueue, outqueue)<br>
>                   for i in xrange(10) ]<br>
><br>
> for w in consumers:<br>
>     w.start()<br>
><br>
> inqueue.join()  # <---- aqui es donde se queda<br>
><br>
> ...........<br>
> el problema es que todo funciona bien, hasta el .join de la JoinableQueue,<br>
> incluso, si hago "print inqueue.qsize()" antes del join, poniendo una espera<br>
> de tiempo, para que el Worker termine la tarea que le puse.. y el qsize dice<br>
> que tiene 0 en la queue .. se queda ahi, esperando y no continúa..<br>
><br>
> llevo varios día probando, incluso, usé multiprocessing.Queue() en esa<br>
> queue, y usé un método en vez del Worker, con una lista de procesos Worker y<br>
> un jopin al final y aún así se queda esperando, en el join<br>
><br>
> traté de explicarme lo mejor posible.. la verdad es que llegué a<br>
> "bloquearme" .. y ya no sé qué más probar en ese código... sé que esto es<br>
> fácil hacerlo con herramientas como celery, pero no me es posible usarla en<br>
> estos momentos.. y he estado revisando la documentación que he encontrado en<br>
> internet y no encuentro ninguna otra pista que seguir<br>
><br>
> el entorno donde debe funcionar es un centos 6, que tiene python 2.6.6 y lo<br>
> he probado hasta python 2.6.8 y siempre mantiene el comportamiento<br>
><br>
> alguna idea que deba revisar? muchas gracias de antemano<br>
><br>
> --<br>
> _______________________________<br>
>         Anielkis Herrera González<br>
><br>
</div></div>> _______________________________________________<br>
> pyar mailing list <a href="mailto:pyar@python.org.ar">pyar@python.org.ar</a><br>
> <a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
><br>
> PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
><br>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de<br>
> Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br>
_______________________________________________<br>
pyar mailing list <a href="mailto:pyar@python.org.ar">pyar@python.org.ar</a><br>
<a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
<br>
PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
<br>
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>_______________________________<br>        Anielkis Herrera González</div></div>