Tôi muốn phát triển một tuyến đường thăm dò một thư mục chứa các tệp CSV và cho mỗi tệp không thống nhất mỗi hàng bằng Bindy và xếp hàng trong activemq.Chiến lược tốt nhất để xử lý các tệp CSV lớn trong Apache Camel
Vấn đề là các tệp có thể khá lớn (một triệu hàng) vì vậy tôi muốn xếp hàng một hàng tại một thời điểm, nhưng những gì tôi nhận được là tất cả các hàng trong java.util.ArrayList ở cuối của Bindy gây ra vấn đề về bộ nhớ.
Cho đến nay tôi có một thử nghiệm nhỏ và unmarshaling đang làm việc để cấu hình Bindy bằng cách sử dụng chú thích là ok.
Dưới đây là các tuyến đường:
from("file://data/inbox?noop=true&maxMessagesPerPoll=1&delay=5000")
.unmarshal()
.bindy(BindyType.Csv, "com.ess.myapp.core")
.to("jms:rawTraffic");
Môi trường là: Eclipse Indigo, Maven 3.0.3, Camel 2.8.0
Cảm ơn bạn
Cảm ơn Claus cho bạn câu trả lời. Bây giờ tôi đang đối mặt với một vấn đề khác. Sau bài tập nhỏ của tôi, tôi đang cố gắng trích xuất từ hàng đợi và ghi vào một tập tin với '.convertBodyTo (String.class) .to (" file: data/outbox? FileExist = Append ")' nhưng chỉ có hàng đầu tiên nhận được bằng văn bản. Tất cả như nhau, nếu tôi sử dụng tùy chọn tập tin Ghi đè tôi chỉ nhận được hàng cuối cùng. Có cách nào để có tất cả các hàng từ tệp CSV được ghi vào tệp không ?. Cảm ơn bạn – Taka
Bạn cần chỉ định tên tệp, .to ("tệp: dữ liệu/hộp thư đi? FileName = data.csv & fileExist = Append") –
Thêm '.thread()' sau '.streaming()' có thể hiệu quả hơn không ? – Pith