Я использую Apache компонент FTP Camel для чтения файлов с FTP-сервера. Я построил свою входную конечную точку следующим образом:
StringBuilder inputEndpointSb = new StringBuilder();
inputEndpointSb.append("ftp://");
inputEndpointSb.append(configProperties.getExternalServerHost()).append(":");
inputEndpointSb.append(configProperties.getExternalServerPort());
inputEndpointSb.append(configProperties.getExternalDirectory());
inputEndpointSb.append("?username=").append(configProperties.getExternalSftpUsername());
inputEndpointSb.append("&password=").append(configProperties.getExternalSftpPassword());
inputEndpointSb.append("&passiveMode=true");
inputEndpointSb.append("&maxMessagesPerPoll=40");
inputEndpointSb.append("&move=archive");
inputEndpointSb.append("&moveFailed=error");
String inputEndpoint = inputEndpointSb.toString();
Мой маршрут выглядит следующим образом
from("direct:transferFile")
.process(requestProcessor)
.log("Transferring file")
.loop(configProperties.getCompletionSize()).copy()
.pollEnrich()
.simple("${exchangeProperty.inputEndpoint}").timeout(0).aggregationStrategy(requestAggregator)
.choice()
.when(body().isNotNull())
.toD("${exchangeProperty.outputEndpoint}", true)
.log("File transferred")
.otherwise()
.log("Empty body, exiting");
Я вызываю маршрут из планировщика весенней загрузки.
Итак здесь я добавил параметр maxMessagesPerPoll. На моем FTP-сервере много файлов, но я хочу, чтобы мой потребитель FTP использовал 40 файлов в одном go и передавал по назначению. Но когда я запускаю эту программу, потребитель FTP подбирает файлы один за другим. Я что-то упустил?