2016-05-12 48 views
2

我很可能錯過了一些東西,但這裏是發生了什麼。駱駝民意調查顯然忽略了ftp組件的批量消費者行爲

此作品:我有todo文件夾中的兩個文件。如果我創建這條路線一切工作正常,我收到了兩個交易所,一個爲每個文件,每30秒:

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(); 

問題:但是,如果我創建這條路線,一個交換收到每30秒,在兩個文件之間切換。

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(); 

在baseFtpConnectionString的FTP URL是這樣的的String.format後:

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

爲什麼pollEnrich不送我兩人交往?這是不是假設有一個從發表聲明相同的行爲?

編輯1

有沒有辦法做到這一點使用poolEnrich(收到所有的交流,爲兩個文件)?

編輯2

Apparently there is not。那麼,除了鏈接上的組件之外,是否還有其他方法可以加載組件上的ftp組件上的所有文件?direct組件?

+1

如果您想使用cron調度,那麼您可以直接在ftp端點上執行此操作 - http://www.davsclaus.com/2013/08/apache-camel-212-even-easier-cron.html - 那麼你不需要任何民意調查 –

+0

我想我不能那樣做。我需要做三個ftp調用,所以我把它放在一個直接的。每次通話後我都會打電話給處理器。它是一個以石英2開始的管道。如果我開始使用ftp調度程序,那麼我會將其他調用放到ftp中?我該如何組織呢? –

+0

我不認爲有人明白你在說什麼。 SO不是聊天論壇。你問了一個問題,你得到了答案。不要一直在同一個問題上提出新的問題! –

回答

4

不,它不是一樣的。

民意調查一次只能豐富一條消息。