【发布时间】:2020-05-25 16:33:29
【问题描述】:
我正在寻找一个关于如何通过根流连接不同集成流的组件。我看过 this 教程(参见 5.2. Bridge);它有一个主根流,然后是两个不同的流。我已经在我的应用程序中尝试过这个,但是如果没有放置 PollerMetadata.DEFAULT_POLLER,它就无法工作。给出一个错误:上下文中没有可用的默认轮询器。当我添加 PollerMetadata.DEFAULT_POLLER 时,桥端点配置器中的时间没有按预期工作。可能,默认情况下轮询器配置会发生冲突。
简而言之,如何通过一个主根连接两个不同的流?但是,不同的流程必须在不同的时间发挥作用。
我不知道我是否使用了正确的组件,我们将不胜感激。谢谢。
另外,我看到this 的问题有点类似。这可能有助于理解我的问题。
更新
@Bean(name = PollerMetadata.DEFAULT_POLLER)
public PollerMetadata poller() {
return Pollers.fixedRate(60, TimeUnit.SECONDS, 10).get();
}
@Bean
public IntegrationFlow fileReader() {
return IntegrationFlows
.from(sourceDirectory())
.split()
.publishSubscribeChannel(c -> c
.subscribe("fileWriter"))
.publishSubscribeChannel(c -> c
.subscribe("anotherFileWriter"))
.get();
}
@Bean
public IntegrationFlow fileWriter() {
return IntegrationFlows
.from("fileWriter")
.bridge(e -> e.poller(10, TimeUnit.SECONDS, 5))
.handle()
.get();
}
@Bean
public IntegrationFlow anotherFileWriter() {
return IntegrationFlows
.from("anotherFileWriter")
.bridge(e -> e.poller(20, TimeUnit.SECONDS, 5))
.handle()
.get();
}
【问题讨论】:
标签: spring-integration spring-integration-dsl