如何在Apache Camel路径中再次读取跳过的文件?

szqfcxe2  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(182)

我正在使用apache camel file组件从一个目录中读取所有文件。根据文件大小(如果列表中的文件大小与我当前阅读的文件大小不相似),我希望跳过该文件,并在下一次迭代中再次拾取它。这可能吗?我的代码如下所示:

from("file://my/directroy/path/?recursive=true&noop=true&idempotent=false")
.aggregate(constant(true), new AggregationStrategy())
.completionSize(100).completionTimeout(100)
.split(body()).process(new Processor() {
  public void process(Exchange exchange){
     //Move this file only if the size is == new File("thisPath").length();
    // othersize skip this for now and pick it up in next iteration
  }
});
vzgqcmou

vzgqcmou1#

https://camel.apache.org/components/3.4.x/file-component.html
根据文档,您可以用途:

filterFile (filter)

Filters the file based on Simple language. For example to filter on file size, you can use \${file:size} 5000

它看起来像这样:

from(file:{{replayDir}}/?filterFile=${file:size} 5000

有关简单语言支持,请参见https://cwiki.apache.org/confluence/display/CAMEL/Simple

相关问题