【问题标题】:Apache Camel file component to use different directoriesApache Camel 文件组件使用不同的目录
【发布时间】:2021-07-20 21:50:19
【问题描述】:

Apache camel 文件组件中是否有一个选项可以使用多个不同的目录来读取文件。

\
  - home
     - level1
        - level2
          - input   (files are within this folder)
  - dir1
     - test 
        - folder1  ( set of files in this folder)
        - folder2  ( set of files in this folder) 

当文件夹在同一目录下时,另一个选项是使用dynamic routing

但是我的用例我不能将文件移动到一个公共目录,我需要输入目录结构是相同的,并且是两个不同的目录。

有没有像下面这样的选项?

<from uri="file://home/leve1/level2/input,//dir1/test/folder1,//dir1/test/folder2"/>
<to ...

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    file 组件接受 1 个路径作为输入(用于上下文路径)。您可以考虑使用多个 file 组件,而不是单个 file 组件中的多个路径。

    • 从 EIP 使用多个并指向同一个端点
    <from uri="file://home/leve1/level2/input" />
        <to uri="direct:file-handler" />
    
    <from uri="file://dir1/test/folder1" />
        <to uri="direct:file-handler" />
    
    <from uri="file://dir1/test/folder2" />
        <to uri="direct:file-handler" />
    
    <from uri="direct:file-handler" />
        <!-- your logic goes here -->
    

    【讨论】:

      【解决方案2】:

      这里要考虑的另一件事是recursive 选项,您可以将其与antIncludeinclude 选项一起使用。在这种情况下,您将能够仅使用一个消费者轮询不同的目录,例如

      <from uri="file://dir1/test?recursive=true&amp;antInclude=folder1/*,folder2/*" />
      
      

      请注意,如果您递归轮询太大的文件树,这将非常低效

      【讨论】:

        猜你喜欢
        • 2021-10-06
        • 1970-01-01
        • 1970-01-01
        • 2021-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多