我想知道已传输的文件数,或者您可以说每个文件从消费者传输到生产者后的确认或通知。

像一个简单的例子

from("file:in").
   .to("file:out");


我使用.onCompetion()并尝试使用处理器,但由于我是新手,因此对我不起作用。代码示例将非常有帮助。

最佳答案

您可以使用CamelBatchSize交换属性。此属性返回此批次中轮询的Exchange总数:

from("file:in").
    .log("CamelBatchSize (header)   = ${header.CamelBatchSize}")
    .log("CamelBatchSize (property) = ${property.CamelBatchSize}")
    .to("file:out");


所有Camel批处理使用者均支持CamelBatchSize,请参见here。支持的其他属性包括:


CamelBatchIndex:批次的当前索引。从0开始。
CamelBatchComplete:一个布尔值,指示批次中的最后一个Exchange。仅对最后一项有效。

关于java - Camel 计数被路由或消耗的文件数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26972590/

10-10 12:47