Каково наилучшее решение для объединения одного сообщения из источника входящих сообщений 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 минут.Во время выполнения этого кода происходит следующее:
- Извлечение файлов и обработка одного из них
- Через 15 минут второй файл обрабатывается
- Еще через 15 минут третий файлобработано
- И, наконец, через 15 минут сообщение отправлено адресату
Как все это можно сделать за одну операцию без задержек?Я пробовал это с FileReadingMessageSource, но у меня был тот же результат.
Заранее спасибо.