Me gustaría desarrollar una ruta que sondee un directorio que contenga archivos CSV, y para cada archivo deshace cada fila usando Bindy y la pone en colas en activemq.La mejor estrategia para procesar archivos CSV grandes en Apache Camel
El problema es que los archivos pueden ser bastante grandes (un millón de filas), por lo que preferiría hacer cola una fila a la vez, pero lo que obtengo son todas las filas en java.util.ArrayList al final de Bindy que causa problemas de memoria.
Hasta ahora tengo una pequeña prueba y la eliminación de marcas está funcionando, por lo que la configuración de Bindy con anotaciones está bien.
Aquí es la ruta:
from("file://data/inbox?noop=true&maxMessagesPerPoll=1&delay=5000")
.unmarshal()
.bindy(BindyType.Csv, "com.ess.myapp.core")
.to("jms:rawTraffic");
Medio Ambiente es: Eclipse Indigo, Maven 3.0.3, 2.8.0 Camel
Gracias
Gracias por su responder. Ahora estoy enfrentando un problema diferente. Siguiendo con mi pequeño ejercicio, intento extraer de la cola y escribir en un archivo con '.convertBodyTo (String.class) .to (" file: data/outbox? FileExist = Append ")' pero solo se obtiene la primera fila escrito. De todos modos, si utilizo la opción de archivo Sobrescribir solo obtengo la última fila. ¿Hay alguna manera de tener todas las filas del archivo CSV escritas en el archivo ?. Gracias – Taka
Debe especificar un nombre de archivo, .to ("file: data/outbox? FileName = data.csv & fileExist = Append") –
Agregar '.thread()' después de '.streaming()' podría ser más eficiente ? – Pith