2016-05-09 12 views
0

Ich habe die Anforderung, alle Dateien aus dem von Camel überwachten Importverzeichnis in ein anderes Verzeichnis zu verschieben. Dafür habe ich die Move- und MoveFailed-Optionen von Camel auf meiner Route verwendet.Verschieben von Dateien aus dem Importverzeichnis in das Archiv mit Apache Camel

Ich habe einen MaxFilesAllowedInArchive-Parameter in einer Eigenschaftendateien und wenn das Dateilimit überschritten wird, muss die älteste Datei gelöscht werden.

Wie kann ich einen benutzerdefinierten Umzug und moveFailed machen, um die Anzahl der verschobenen Dateien zu steuern und die neuesten Dateien im Archiv zu behalten?

Antwort

0

Camel verfügt nicht über eine Komponente, die von Metadaten des Dateisystems ausgeht (z. B. Zähler und Datumsangaben). Sie können dies jedoch einfach mithilfe eines Kundenprozessors implementieren, der die neuen Java-Pfade und -Dateien verwendet.

Erstellen Sie eine Timer/Quarz-Route, die zu einem Kundenprozessor aufruft. Listen Sie in diesem Kundenprozessor Dateien in Ihrem Verzeichnis "move" und "moveFailed" auf, um den Inhalt zu zählen (und nach Datum zu sortieren). Wenn MaxFilesAllowsInArchive überschritten wird, löschen Sie X Anzahl der Dateien aus den Ordnern.