【问题标题】:Load multiple files with Apache Camel使用 Apache Camel 加载多个文件
【发布时间】:2016-10-25 10:44:51
【问题描述】:

我的工作目录中有几个文件:

  • one.xml
  • 两个.xml
  • ...
  • 千.xml

我想使用 Apache Camel File2 组件来处理它。比如:

<route>
    <from uri="file://inbox?idempotent=true&amp;maxMessagesPerPoll=360" />
    <to uri="bean:processInbox"/>
</route>

是否可以同时读取和处理一个文件夹中的多个文件?

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    查看文档http://camel.apache.org/file2.html

    maxMessagesPerPoll:“一个整数,用于定义要收集的最大消息 每次投票...”

    maxMessagesPerPoll=360 意味着如果您的目录中有 - 例如 - 400 个文件,则第一次轮询需要 360 个,剩余的 40 个将在下一次轮询中进行。 但是您的 bean:processInbox 端点只会获取 1 个文件作为输入(第一次轮询 360 次,第二次轮询 40 次)

    【讨论】:

    • 对不起,可能是我的问题不正确。我理解“maxMessagesPerPoll”选项的含义。我需要处理这千个文件的某些部分(360 只是示例)多个文件。主要问题是:如何给“bean:processInbox”多个文件? 360、1000、5 没那么重要。
    • 然后你必须聚合传入的文件:camel.apache.org/aggregate-example.html
    • 这可能是您的完美匹配camel.apache.org/aggregator2.html:completionFromBatchConsumer false 此选项是如果交换来自批量消费者。然后,当启用 Aggregator2 时,将使用消息头 CamelBatchSize 中的 Batch Consumer 确定的批大小。在批量消费者中查看更多详细信息。这可用于聚合在该给定轮询中从 File 端点消耗的所有文件。
    • 非常感谢!你的建议真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多