[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