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