我有两个IntegrationFlow用于导入Head和Position数据。 为了导入,我使用csv文件,它们以文件夹结构组织。 Head-CSV文件位于Head-Folder中,而Position-Files位于Position-Folder中。 csv文件的结构当然不同。
现在有必要在位置数据之前导入头数据。但是,如果没有可用的头数据,则无论如何都应处理位置文件夹。 (例如,用于更新现有负责人的职位)
目前,我有两个IntegrationFlow。每种情况一个。
是否有可能一个又一个地调用此Integrationflow?如果不是,是否有可能(通过聚合方法)由一个IntegrationFlow使用两个不同的MessageSource,并有可能检测到Head-Message-Source是Head还是Position和安全性。担任职位?
@Configuration
public class MyHeadFlowConfig
@Bean
public IntegrationFlow myHeadFlow() {
return IntegrationFlows.from(myHeadMessageSource, myPollerConsumer))
.filter(new SimplePatternFileListFilter("*.csv"))
.handle(myHeadJobConfig)
.get();
}
}
@Configuration
public class MyPositionFlowConfig
@Bean
public IntegrationFlow myPositionFlow() {
return IntegrationFlows.from(myPositionMessageSource, myPollerConsumer))
.filter(new SimplePatternFileListFilter("*.csv"))
.handle(myPositionJobConfig)
.get();
}
}
答案 0 :(得分:1)
有许多方法可以完成此操作。
如果两个集成流在同一个JVM中运行,则最简单,最自然的方法是共享 channel 。基本上创建一个MessageChannel
的实例,并将其连接到一个絮体的末尾和另一个絮体的开始。
floaA -> sharedChannel -> flowB
ApplicationEvent支持将是另一种方法。 当然还有一堆提供的入站/出站适配器。