【发布时间】:2022-01-24 22:27:21
【问题描述】:
我想编写一个骆驼路由,它将从多个文件目的地获取输入并在聚合后处理它们。 是否可以从多个文件中获取单个路由的输入?
【问题讨论】:
标签: file apache-camel spring-camel camel-ftp
我想编写一个骆驼路由,它将从多个文件目的地获取输入并在聚合后处理它们。 是否可以从多个文件中获取单个路由的输入?
【问题讨论】:
标签: file apache-camel spring-camel camel-ftp
是的,您可以使用poll-enrich 调用像文件这样的消费者端点来丰富消息。这适用于许多其他消费者端点以及 SFTP 或消息队列。
如果您需要多次读取同一个文件,则可能会变得更加棘手,因为您可能必须设置 noop=true 并可能使用 dummy idempotent repository 之类的东西来绕过骆驼的默认行为。
请注意,调用 pollEnrich 似乎会清除标题/创建新消息,因此请使用交换属性在 pollEnrich 调用之间保留数据。
from("file:someDirectory")
.setProperty("file1").body()
.pollEnrich("file:otherDirectory", 3000)
.setProperty("file2").body()
.pollEnrich("file:yetAnotherDirectory", 3000)
.setProperty("file3").body();
【讨论】: