2016-06-16 13 views
0

Ich führe meine Camel FTP, um rund 10000 Dateien von einem Remote-Linux-Server-Verzeichnis auf lokale Computer-Verzeichnis herunterladen. Ich erhalte einen Heapspeicherfehler, sobald der Download von ungefähr 2000 Dateien abgeschlossen ist. Basierend auf den anderen Foren-Threads wurde vorgeschlagen, maxMessagesPerPoll zu verwenden. Aber wenn ich es auf 1000 setze, lädt es nur 1000 Dateien herunter und stoppt. Mein Code ist ziemlich einfach und wird vom Kamel ftp Beispiel genommenNicht genügend Speicher Heap-Größe Fehler - Apache Camel FTP

from("sftp://xxxxx:22//tmp/serverfolder/?stepwise=false&include=ABC*.txt}}&username=XXXX&password=XXXXX&maximumReconnectAttempts=0&delay=5s&maxMessagesPerPoll=1000") 
.to(/tmp/localfolder/); 
+0

Versuchen Sie 'delay = 5000' anstelle von' delay = 5s'. – Ralf

Antwort

0

Ich glaube, Sie werden den richtigen Weg mit den Jungs aus den Foren spricht nach unten. Es sieht jedoch so aus, als wäre ein Teil ihrer Nachricht verfehlt worden. Camel FTP ist ein "Polling-Endpunkt". Dies bedeutet, dass der Endpunkt permanent auf einer Schleife aufgerufen wird. Dies ist nicht schwer zu konfigurieren und es gibt Ihnen die Möglichkeit, ein paar Dateien zu ziehen, etwas warten und dann mehr ziehen. Im Idealfall können Sie damit mithalten, dass Dateien in das Verzeichnis verschoben werden, sodass Sie normalerweise keine 10.000 Stapel von Dateien zum Verschieben erhalten. Sie können ein paar hundert alle paar Sekunden bewegen.

Dokumentation:

http://camel.apache.org/polling-consumer.html

http://camel.apache.org/ftp.html

WICHTIGER HINWEIS VON FTP DOKU: Siehe File2 wie alle Optionen gibt gilt auch für diese Komponente.

http://camel.apache.org/file2.html

Informationen vom file2 Dokumentation

Property Default Description 
delay  500  Milliseconds before the next poll of the file/directory. 

Das bedeutet einfach, dass Sie alle paar Sekunden oder Minuten anstatt zu versuchen, ein paar Dateien abholen können, um alle 10k auf einmal zu bewegen. Denken Sie auch daran, dass Sie bei Verwendung dieser Option normalerweise keine 10k aufbauen würden, es sei denn, Sie würden Ihre Kamelroute nur von Zeit zu Zeit starten.

WICHTIGER HINWEIS 2: FTP Consumer unterstützt keine Gleichzeitigkeit

Genau dieser Geist in halten. Sie werden nicht in der Lage sein, eine Menge von Threads hinzuzufügen, um die Leistung zu erhöhen, daher ist es wichtig, dass Ihre Komponente ständig läuft, wenn Sie viele Dateien bearbeiten wollen. Idealerweise ist es bevorzugt, sie ständig zu konsumieren, statt eine Chargenbelastung von einmal am Tag.