使用Apache Camel从动态目录下载SFTP

时间:2014-07-03 13:47:07

标签: apache-camel sftp

在同一个SFTP位置,有明智的结构如下所示。

  • 2014年6月29日/
  • 2014/06/30 /
  • 2014年7月1日/
  • 2014年7月2日/

Folowing路由工作正常,每个30S消费者检查SFTP位置并下载.txt文件。

from("sftp://user@host?antInclude=*/*/*/*.txt"
                + "&password=xxx" + "&recursive=true" + "&idempotent=true"
                + "&scheduler=spring&scheduler.cron=0/30+*+*+*+*+?")
            .to("file:/home/user/data");

但是上面的路由将扫描SFTP位置中的所有目录,这可能是性能问题。因此,我需要像今天和前一天一样扫描,如下所述。

from("sftp://user@host?antInclude=2014/07/03/*.txt,2014/07/02/*.txt"
                + "&password=xxx" + "&recursive=true" + "&idempotent=true"
                + "&scheduler=spring&scheduler.cron=0/30+*+*+*+*+?")
            .to("file:/home/user/data");

但是,我需要为antInclude=选项使用动态目录模式。我正在尝试几种方法,但它没有成功。能否请您根据自己的经验给我一个想法。

1 个答案:

答案 0 :(得分:0)

源端点不是动态的。如果您需要更改它,请按照here所述进行处理。因此,一种可能的解决方案可能是使用调度程序每天更新路由。我知道不是很优雅。