Запустите IntegrationFlow за другим - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть два IntegrationFlow для импорта данных о голове и положении.Для импорта я использую csv-файлы, которые организованы в структуру папок.Head-CSV-файлы, находятся в Head-Folder и умирают Position-Files в Position-Folder.Структура csv-файлов, конечно, другая.

Теперь необходимо, чтобы данные о головке импортировались до данных о местоположении.Но когда нет доступных данных головы, папка позиции должна быть обработана в любом случае.(Например, для обновления положения существующей головы)

В настоящее время у меня есть два IntegrationFlow.По одному на каждый случай.

Есть ли возможность вызывать эти интеграционные потоки один за другим?Если нет, есть ли возможность (возможно, через метод агрегации) использовать два разных источника сообщений одним IntegrationFlow, с возможностью обнаружения, является ли он головой или позицией и безопасностью, что обработан источник сообщения-головыПозиция?

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

1 Ответ

0 голосов
/ 21 февраля 2019

Есть много способов сделать это.

Если два потока интеграции работают в одной и той же JVM, самый простой и естественный подход - разделить канал .По сути, создайте экземпляр MessageChannel и подключите его в конце одного блока и в начале другого.

floaA -> sharedChannel -> flowB

Поддержка ApplicationEvent будет другим подходом.И, конечно же, множество предоставленных адаптеров для входящих / исходящих сообщений.

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