2017-01-11 3 views
0

Welche Camel Camera hat die beste Strategie, um eine Datei zu verschieben, wenn ein externes Ereignis eintritt (z. B. wenn jemand eine Spring-Controller-Methode aufruft)? Mit Blick auf die Dokumentation scheint die Komponente File nur Dateiüberwachung oder geplanten Aufruf zuzulassen, aber keinen ereignisbasierten Aufruf und scheint nur eine Eingabe und keine Ausgabe zu sein.Kamel - Datei nur bei einem Ereignis verschieben

Idealerweise etwas wie;

//raise the event 
Exchange exchange = new DefaultExchange(producerTemplate.getCamelContext()); 
producerTemplate.send("direct:move-file", exchange); 

Mit der Kamelroute, die ungefähr so ​​aussieht;

//sample route logic 
from("direct:move-file).to(<file move logic>); 
+0

Lesen Sie diese [thread] (http://camel.4544027.n5.nabble.com/File-consumer-event-based-not-polling-td5715349.html), es klingt nicht wie Ihre Usecase ist mühelos unterstützt, aber ich denke, dass Sie einige Ideen erhalten können, indem Sie diesen Thread lesen. Insbesondere mag ich die Idee, die Route selektiv zu starten und zu stoppen. – DavidS

+0

@DavidS Danke, ich habe diesen Thread auch gesehen und das ist eine Option (wenn auch Overkill)/Ich hatte gehofft, dass in den 4 Jahren seit diesem Thread etwas neues in Camel verfügbar sein würde, das dies erleichtern könnte. – Ian

+0

Kannst du nicht einfach die Datei mit java.io.File und ihrer Umbenennungsmethode verschieben? Schreiben Sie einfach ein paar Zeilen Java-Code, um das zu tun, was Sie für das Ereignis aufrufen. –

Antwort

0

dies gelöst, indem nicht das Kamel Rahmen mit der Datei & einfach fallen zurück in der Standard-Java zu bewegen, um die Datei zu bewegen.

Verwandte Themen