Apache Camel maxMessagesPerPoll не работает для компонента ftp - PullRequest
0 голосов
/ 26 февраля 2020

Я использую 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 подбирает файлы один за другим. Я что-то упустил?

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