2016-05-12 5 views
2

Ich vermisse etwas, aber hier ist was passiert.Camel Poll Enrich scheint ignoriert das Batch Consumer-Verhalten der FTP-Komponente

Dies funktioniert: Ich habe zwei Dateien auf der Todo Ordner. Wenn ich diese Strecke funktioniert alles einwandfrei schaffen, erhielt ich die beiden Börsen, eine für jede Datei, alle 30 Sekunden:

from(String.format(baseFtpConnectionString, "/todo/") + "&scheduler=quartz2&scheduler.cron=0/10+*+*+*+*+?") 
    .to("log:test?showAll=true&multiline=true") 
    .unmarshal(bindyRegister) 
    .process(new Processor() {     
     @Override 
     public void process(Exchange exchange) throws Exception { 
      System.out.println("Ok");    
     } 
    }) 
    .end(); 

Das Problem: Aber, wenn ich diesen Weg schaffen, ein Austausch empfangen wird alle 30 Sekunden, zwischen den beiden Dateien wechseln.

from("quartz2://getData?cron=0/10+*+*+*+*+?") 
    .pollEnrich(String.format(baseFtpConnectionString, "/todo/")) 
    .to("log:test?showAll=true&multiline=true") 
    .unmarshal(bindyRegister) 
    .process(new Processor() {     
    @Override 
    public void process(Exchange exchange) throws Exception { 
     System.out.println("Ok");    
    } 
    }) 
    .end(); 

Die FTP-URL in der baseFtpConnectionString ist so etwas wie dies nach dem String.format:

ftps://[email protected]:port/path?password=password&passiveMode=true 

Warum die pollEnrich nicht senden Sie mir die beiden Börsen? Es wurde nicht angenommen, dass es dasselbe Verhalten wie eine from-Anweisung hat.

EDIT 1

Gibt es eine Möglichkeit, das zu tun poolEnrich mit (Recieve alle Börsen, für beide Dateien)?

EDIT 2

Apparently there is not. Also, gibt es eine andere Möglichkeit, alle Dateien von einer ftp Komponente zu laden, die auf einer direct Komponente begann, neben der auf der Verbindung?

+1

Wenn Sie die Cron-Planung verwenden möchten, können Sie dies auch direkt auf dem FTP-Endpunkt tun - http://www.davsclaus.com/2013/08/apache-camel-212-even-easier-cron.html - dann brauchst du keine pollEnrich –

+0

Ich denke, ich kann das nicht tun. Ich muss drei FTP-Anrufe machen, also setze ich dann direkt ein. Nach jedem Anruf rufe ich den Prozessor an. Es ist eine Pipeline, die mit Quarz2 gestartet wird. Wenn ich mit einem FTP-Scheduler angefangen habe, wo werde ich die anderen Aufrufe auf ftp stellen? Wie kann ich das organisieren? –

+0

Ich glaube nicht, dass jemand versteht worüber du sprichst. SO ist kein Chat-Forum. Du hast eine Frage gestellt und du hast eine Antwort bekommen. Stellen Sie nicht immer wieder neue Fragen in derselben Frage! –

Antwort

4

Nein, es ist nicht das Gleiche.

Eine Umfrage bereichern ist nur eine Nachricht auf einmal anreichern.