[pyar] usando multiprocessing

Hernan Grecco hernan.grecco en gmail.com
Jue Dic 12 11:49:01 ART 2013


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


More information about the pyar mailing list