2
正常工作駱駝completionSize我有這樣與completionTimeout沒有使用JUnit
line1
line2
line3
line4
line5
line6
line7
line8
文件和路徑類似:
.from("direct:start")
.split().tokenize("\r\n").streaming()
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
System.out.println("Splitter:" +
exchange.getIn().getBody(String.class));
}
})
.aggregate(constant(true), new MyAggregationStrategy())
.completionSize(3).completionTimeout(10000)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
int size = exchange.getIn().getBody(Set.class).size();
System.out.println("Processor, Set size:" + size);
}
})
.to("mock:end")
MyAggregationStrategy創建一組與3項。這非常適用於第6行,我得到的輸出是這樣的:
Splitter:line 1
Splitter:line 2
Splitter:line 3
...
Processor, Set size:3
...
Splitter:line 4
Splitter:line 5
Splitter:line 6
...
Processor, Set size:3
...
Splitter:line 7
Splitter:line 8
雖然7號線和8號線都在oldExchange在MyAggregationStrategy聚集事後定義的處理器絕不會爲他們。此外completionTimeout不起作用。該代碼立即終止,不等待10秒鐘,不存在的第9行。
任何想法?我認爲這是處理剩餘行不符合completionSize的推薦方式?
由於我們被綁定到Java 6,我們使用駱駝版本2.13.4。
您可以接受的答案,這樣的問題是不是沒有答案上市?謝謝! –
我想,但系統說「你可以在21小時內接受你自己的答案」。 – nick78
啊,48小時的等待時間必須到位。該死,對不起。 –