【问题标题】:Camel FTP recursive consumer taking too longCamel FTP递归消费者花费太长时间
【发布时间】:2017-08-24 20:37:39
【问题描述】:

我正在尝试仅从 FTP 服务器上的某些子目录中检索文件。例如,我只想轮询子目录 A 和 C 下的文件。

ROOT_DIR/A/test1.xml
ROOT_DIR/B/test2.xml
ROOT_DIR/C/test3.xml
ROOT_DIR/..(there are hundreds of subdirs)

我试图避免每个目录都有一个端点,因为将来可能会添加更多要从中使用的目录。

我已经使用 ROOT_DIR 上的单个 SFTP 端点成功实现了这一点,recursive=true in conjunction with an AntPathMatcherGenericFileFilter instance as suggested

我遇到的问题是正在搜索每个子目录(数百个),并且我的过滤器也只查找某些文件名。仅在搜索每个目录后才过滤结果,这花费的时间太长(几分钟)。

有没有办法只使用某些子目录,而这些子目录可以保存在属性文件中而不搜索每个子目录?

【问题讨论】:

    标签: java recursion ftp apache-camel


    【解决方案1】:

    我确实找到了一种可能的解决方案,使用 Timer Based Polling Consumer 和 Ant 过滤器的不同方法。使用此解决方案,动态 sftp 端点(或动态 sftp 端点列表)可以通过在 bean 中使用 ConsumerTemplate 来使用,而不是在路由中使用。

    while (true) {
                // receive the message from the queue, wait at most 3 sec
                String msg = consumer.receiveBody("activemq:queue.inbox", 3000, String.class);
    .
    .
    

    这可以与我现有的 Ant 过滤器一起使用,以仅选择动态子目录列表下的某些文件来使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多