[pyar] leyendo archivo en paralelo
Facundo Batista
facundobatista en gmail.com
Vie Ago 8 11:17:12 ART 2014
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
More information about the pyar
mailing list