[pyar] usando multiprocessing

Anielkis Herrera anielkis en gmail.com
Jue Dic 12 11:06:28 ART 2013


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


More information about the pyar mailing list