Apache Camel:处理Pollenrich以获取CamelBatchIndex

时间:2018-07-10 12:13:14

标签: apache-camel camel-ftp

Apache Camel:我有一个用例,用于下载文件名中带有ID的某些文件集。我使用花粉来使用带有正则表达式的antInclude来获取文件数,并迭代了一个循环来下载每个文件。我能够第一次下载文件,但是当我尝试使用相同的ID重试时,期望没有文件计数,它给出了一些数字与不正确。

.pollEnrich().simple("sftp location where files are to be picked?noop=true&idempotent=false&antInclude=*${property.someID}*.*").timeout(5000)
.when(body().isEqualTo(null))
.log("No Files found")
.otherwise()
.log("file count: ${property.CamelBatchSize}")
.loop(simple("${property.CamelBatchSize}")
.pollEnrich().simple("sftp location where file are to be picked?move=Processed&antInclude=*${property.someID}*.*").timeout(5000)
.to("sftp location where files need to be saved") 

1 个答案:

答案 0 :(得分:0)

当然,它将返回camelBatchSize中的先前文件计数值。我想出了相同的情况,以解决我添加的交换属性,以便在第一个pollEnrich之前将骆驼批处理大小设置为“ 0”。

您可以在第一个pollEnrich之前做类似的事情,

exchange.getProperties().put('CamelBatchSize',0);
.pollEnrich().simple("sftp location where files are to be picked?noop=true&idempotent=false&antInclude=*${property.someID}*.*").timeout(5000)
.when(body().isEqualTo(null))

这可以解决问题。