1

我有一个 Spring Integration 应用程序,它将传入的文件放到一个通道上。从那里我希望能够将相同的文件发送到两个不同的处理管道(一个归档到 S3,另一个解析内容),然后有一个下游组件可以识别两者何时都已成功处理,从而删除实际的本地文件。

语义就像我需要一个拆分器/聚合器,但不是拆分消息,我需要复制它。

有什么方法可以使用可用的组件来实现这一点,还是需要一些自定义类?

4

1 回答 1

3

是的,a <publish-subscribe-channel/>(with apply-sequence="true") 的工作方式类似于拆分器 - 但是频道的两个订阅者都将获得相同的File对象。默认情况下,这两个分支将串行执行,但如果您想并行处理,可以引入 ExecutorChannel。

如果您希望每个订阅者获得不同的File对象,您可以添加一个转换器...

<transformer ... expression="new java.io.File(payload.absolutePath)" />

于 2013-01-04T16:14:24.283 回答