Spring integration Spring集成JavaDSL桥来轮询两个不同的目录
我有一个安装文件轮询器/通道适配器,它使用JavaDSL轮询目录和处理程序集成流。但我没有得到任何关于如何向同一处理程序添加另一个目录/通道适配器和桥接器的参考。这是我的密码Spring integration Spring集成JavaDSL桥来轮询两个不同的目录,spring-integration,spring-batch,spring-integration-dsl,Spring Integration,Spring Batch,Spring Integration Dsl,我有一个安装文件轮询器/通道适配器,它使用JavaDSL轮询目录和处理程序集成流。但我没有得到任何关于如何向同一处理程序添加另一个目录/通道适配器和桥接器的参考。这是我的密码 @Bean public IntegrationFlow integrationFlow(JobLaunchingGateway jobLaunchingGateway) { return IntegrationFlows.from(Files.inboundAdapter(new File(incomingDir
@Bean
public IntegrationFlow integrationFlow(JobLaunchingGateway jobLaunchingGateway) {
return IntegrationFlows.from(Files.inboundAdapter(new File(incomingDir)).
filter(new SimplePatternFileListFilter("*.csv")).
filter(new AcceptOnceFileListFilter<>()),
c -> c.poller(Pollers.fixedRate(500).maxMessagesPerPoll(1))).
handle(fileMessageToJobRequest()).
handle(jobLaunchingGateway).
log(LoggingHandler.Level.WARN, "headers.id + ': ' + payload").
get();
}
@Bean
公共集成流集成流(JobLaunchingGateway JobLaunchingGateway){
返回IntegrationFlows.from(Files.inboundAdapter(新文件(incomingDir))。
过滤器(新的SimplePatternFileListFilter(“*.csv”))。
筛选器(新的AcceptOnceFileListFilter()),
c->c.poller(Pollers.fixedRate(500.maxMessagesPerPoll(1)))。
句柄(fileMessageToJobRequest())。
句柄(jobLaunchingGateway)。
日志(LoggingHandler.Level.WARN,“headers.id+”:“+负载”)。
get();
}
Spring Integration中的头等公民之一是一个消息通道
实体。您始终可以在IntegrationFlow
定义中设置端点之间的显式通道,并显式向它们发送消息
对于“合并”用例,我建议在.handle()
之前放置一个.channel()
,并为第二个目录声明第二个流,但在该流的末尾使用相同的.channel()
将消息从该流“桥接”到第一个流的中间
请参阅参考手册中的更多信息:谢谢@Artem。下面呢
@Bean
public IntegrationFlow integrationFlowUi(JobLaunchingGateway jobLaunchingGateway) {
return IntegrationFlows.from(Files.inboundAdapter(new File(incomingDirUi)).
filter(new SimplePatternFileListFilter("*.csv")).
filter(new AcceptOnceFileListFilter<>()),
c -> c.poller(Pollers.fixedRate(500).maxMessagesPerPoll(1))).
channel("to-bridge").
handle(fileMessageToJobRequest()).
handle(jobLaunchingGateway).
log(LoggingHandler.Level.WARN, "headers.id + ': ' + payload").
get();
}
@Bean
public IntegrationFlow integrationFlowSftp(JobLaunchingGateway jobLaunchingGateway) {
return IntegrationFlows.from(Files.inboundAdapter(new File(incomingDirSftp)).
filter(new SimplePatternFileListFilter("*.csv")).
filter(new AcceptOnceFileListFilter<>()),
c -> c.poller(Pollers.fixedRate(500).maxMessagesPerPoll(1))).
channel("to-bridge").get();
}
@Bean
公共集成流集成流UI(JobLaunchingGateway JobLaunchingGateway){
返回IntegrationFlows.from(Files.inboundAdapter(新文件(incomingDirUi))。
过滤器(新的SimplePatternFileListFilter(“*.csv”))。
筛选器(新的AcceptOnceFileListFilter()),
c->c.poller(Pollers.fixedRate(500.maxMessagesPerPoll(1)))。
渠道(“至桥梁”)。
句柄(fileMessageToJobRequest())。
句柄(jobLaunchingGateway)。
日志(LoggingHandler.Level.WARN,“headers.id+”:“+负载”)。
get();
}
@豆子
公共集成流集成流SFTP(JobLaunchingGateway JobLaunchingGateway){
返回IntegrationFlows.from(Files.inboundAdapter(新文件(incomingDirSftp))。
过滤器(新的SimplePatternFileListFilter(“*.csv”))。
筛选器(新的AcceptOnceFileListFilter()),
c->c.poller(Pollers.fixedRate(500.maxMessagesPerPoll(1)))。
通道(“到桥接器”).get();
}
谢谢@Artem。这会导致以下结果吗?对,没错。正是我给你的建议。现在清楚它是如何工作的了吗?