में बड़ी सीएसवी फाइलों को संसाधित करने के लिए सर्वश्रेष्ठ रणनीति मैं एक मार्ग विकसित करना चाहता हूं जो सीएसवी फाइलों वाली निर्देशिका का चुनाव करे, और प्रत्येक फाइल के लिए यह प्रत्येक पंक्ति को बिन्डी का उपयोग करके अनमशल करता है और इसे सक्रिय एमक्यू में कतार देता है।अपाचे कैमल
समस्या यह है कि फाइलें बहुत बड़ी हो सकती हैं (दस लाख पंक्तियां) इसलिए मैं एक समय में एक पंक्ति कतार करना पसंद करूंगा, लेकिन मुझे जो कुछ मिल रहा है वह जावा में सभी पंक्तियां हैं .util.ArrayList अंत में बिंडी का जो स्मृति समस्याओं का कारण बनता है।
अभी तक मेरे पास थोड़ा परीक्षण है और अनमोल काम कर रहा है इसलिए एनोटेशन का उपयोग करके बिन्डी कॉन्फ़िगरेशन ठीक है।
from("file://data/inbox?noop=true&maxMessagesPerPoll=1&delay=5000")
.unmarshal()
.bindy(BindyType.Csv, "com.ess.myapp.core")
.to("jms:rawTraffic");
पर्यावरण है: ग्रहण इंडिगो, Maven 3.0.3, कैमल 2.8.0
आप
के लिए धन्यवाद क्लॉस अपने जवाब। अब मुझे एक अलग समस्या का सामना करना पड़ रहा है। मेरे छोटे अभ्यास के बाद मैं कतार से निकालने की कोशिश कर रहा हूं और '.convertBodyTo (String.class) के साथ एक फ़ाइल में लिख रहा हूं। ("फ़ाइल: डेटा/आउटबॉक्स? FileExist = Append")' लेकिन केवल पहली पंक्ति हो जाती है लिखा हुआ। वही, अगर मैं फ़ाइल विकल्प ओवरराइड का उपयोग करता हूं तो मुझे केवल अंतिम पंक्ति मिलती है। फ़ाइल में लिखी गई सीएसवी फ़ाइल से सभी पंक्तियों का कोई तरीका है? धन्यवाद – Taka
आपको फ़ाइल नाम निर्दिष्ट करने की आवश्यकता है,। ("फ़ाइल: डेटा/आउटबॉक्स? FileName = data.csv और fileExist = संलग्न करें") –
'.streaming() 'के बाद' .thread()' जोड़ें 'यह अधिक कुशल हो सकता है ? – Pith