[pyar] leyendo archivo en paralelo
Javier Pepe
javierpepe en gmail.com
Vie Ago 8 11:23:03 ART 2014
Siguiendo el comentario de Facundo
Podrías implementar en el consumidor una Queue en donde vas poniendo las
lineas que vas leyendo, y los worker consumen de la Queue, y van sacando de
a uno las lineas.
Cuando no hay nada en la Queue, pueden salir o esperar, dependiendo de lo
que vos quieras hacer.
Yo uso un esquema similar para hacer grandes consultas por snmp, y da buen
resultado.
2014-08-08 11:17 GMT-03:00 Facundo Batista <facundobatista en gmail.com>:
> 2014-08-08 10:52 GMT-03:00 Sebastian Bassi <sebastian.bassi en globant.com>:
>
> > Esto funciona, sobre todo si el archivo que crece termina de crecer
> > antes que el ultimo worker llegue al final. Ahora, si los workers
> > llegan al final del archivo, pero este luego vuelve a crecer, los
> > workers no se dan cuenta y terminan, no "espera" a que haya mas
> > lineas.
> >
> > Cualquier sugerencia de como mejorar esto será bienvenida, aca pego el
> > código del programa 3 que es el mas relevante:
>
> Cuando Python llega al final del archivo, y leés la linea, te devuelve
> una cadena vacía. En ese momento, en vez de "cortar", tenés que
> esperar un rato, y seguir leyendo (sigue de donde estaba!).
>
> Yo cambiaría un detalle en tu diseño. Creo que es más controlable si
> tenés un sólo consumidor del archivo, con los N workers, quedaría algo
> como...
>
> fh = open("bigfile.txt", "rt)
> while True:
> line = fh.readline()
> if line:
> worker = select_idle_worker()
> worker.put(line)
> else:
> time.sleep(1)
>
> Slds.
>
> --
> . Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org/ar/
> Twitter: @facundobatista
> _______________________________________________
> 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/20140808/466aca61/attachment.html>
More information about the pyar
mailing list