Интеграция Spring - агрегатор из sftp входящего - PullRequest
0 голосов
/ 27 сентября 2018

Каково наилучшее решение для объединения одного сообщения из источника входящих сообщений sftp, содержащего несколько файлов?У нас на удаленной машине 3 файла, которые нужно получить.После этого мы объединяем содержимое этих файлов в одно сообщение json и отправляем его вперед.

public IntegrationFlow sftpIntegrationFlowBean() {
    final Map<String, Object> headers = new HashMap<>();
    headers.put("sftpFile", "sftpFile");
    final Consumer<AggregatorSpec> aggregator = t -> {
        t.sendPartialResultOnExpiry(true);
        t.expireGroupsUponCompletion(true);
        t.processor(new CustomMessageAggregator());
    };
    return IntegrationFlows
            .from(sftpInboundMessageSource(),
                    e -> e.id("sftpIntegrationFlow").poller(pollerMetadataSftp))
            .enrichHeaders(headers).aggregate(aggregator)
            .handle(customMessageSender).get();
}

Опрос Poller каждые 15 минут.Во время выполнения этого кода происходит следующее:

  1. Извлечение файлов и обработка одного из них
  2. Через 15 минут второй файл обрабатывается
  3. Еще через 15 минут третий файлобработано
  4. И, наконец, через 15 минут сообщение отправлено адресату

Как все это можно сделать за одну операцию без задержек?Я пробовал это с FileReadingMessageSource, но у меня был тот же результат.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 октября 2018

Увеличение maxMessagesPerPoll в PollerMetadata.

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