桥端点Configurer的正确使用方法是什么?

问题描述 投票:0回答:1

我正在寻找一个关于如何通过根流连接不同集成流的组件。我看到了 这个 教程(见5.2. Bridge);它有一个主根流,然后是两个不同的流。我在我的应用程序中试过这样做,但如果不把它放在 PollerMetadata.DEFAULT_POLLER.. 给出一个错误。在上下文中没有可用的默认轮询器。 当我添加 PollerMetadata.DEFAULT_POLLER.桥端点配置器中的倍数没有达到预期的效果。可能,它与默认的poller配置冲突。

简而言之,我如何通过一个主根连接两个不同的流?但是,不同的流必须在不同的时间工作。

我不知道我是否使用了正确的组件,任何帮助将是感激的。谢谢你的帮助。

另外,我还看到 这个 问题是一种类似的。它可以帮助理解我的问题。

更新

    @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
1个回答
0
投票

在问这样的问题时,你应该展示你的代码。

我不太清楚你说的 "根流 "是什么意思。

简而言之,如何通过一个主根连接两个不同的流?

如果它们都从同一个可轮询通道消耗,每个消息将只传给一个或另一个流。

为了具体回答你的问题,你指出的例子显示了如何在端点上配置一个特定的轮询器......。

>.bridge(e -> e.poller(Pollers.fixedRate(1, TimeUnit.SECONDS, 20)))

如果你省略了端点上的轮询器,你只需要一个默认的轮询器。

© www.soinside.com 2019 - 2024. All rights reserved.