Как правильно использовать Bridge endpointConfigurer? - PullRequest
0 голосов
/ 25 мая 2020

Ищу компонент о том, как соединить разные потоки интеграции потоком root. Я видел этот учебник (см. 5.2. Мост); у него один основной поток root, а затем два разных потока. Я пробовал это в своем приложении, но это не сработало без PollerMetadata.DEFAULT_POLLER . Выдает ошибку: в контексте нет доступного опросчика по умолчанию. Когда я добавляю PollerMetadata.DEFAULT_POLLER , время в мосте endpointConfigurer работает не так, как ожидалось. Возможно, это противоречит конфигурации опросчика по умолчанию.

Короче как можно два разных потока соединить одним главным root? Но разные потоки должны работать в разное время.

Я не знаю, использую ли я правильный компонент или нет, любая помощь будет оценена. Спасибо.

Вдобавок я видел этот вопрос, который в некотором роде похож. Это может помочь понять мой вопрос.

ОБНОВЛЕНИЕ

    @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();
    }

1 Ответ

0 голосов
/ 25 мая 2020

Вы должны показывать свой код, задавая подобные вопросы.

Не совсем понятно, что вы подразумеваете под

Короче говоря, как я могу соединить два разных потока одной главной root?

Если они оба потребляют из одного и того же опросного канала, каждое сообщение будет только go одному или другому потоку.

Чтобы конкретно ответить на ваш вопрос, приведем пример Вы указали, что показывает, как настроить специальный c опросчик на конечной точке ...

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

Если вы опустите опросчик на конечной точке, вам понадобится опросчик по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...