Apache Camel извлекает данные с ftp постепенно и периодически

#java #apache #camera #apache-camel

#java #apache #камера #apache-camel

Вопрос:

Я очень новичок в Apache camel, и я изучаю, как создать route, который извлекает данные с ftp, например, каждые 15 минут и извлекает только новые или обновленные файлы, поэтому, если некоторые файлы были загружены раньше, и все тот же (неизмененный) ftp-загрузчик не должен загружать их в папку назначения.

Любые советы приветствуются.

ОБНОВЛЕНИЕ # 1

Я уже заметил, что мне нужно посмотреть на FTP2, и на самом деле я уже добился прогресса, последнее, что я хочу уточнить: consumer.dealy определяет задержку между каждой попыткой загрузки, например consumer.задержка = 5 секунд, и при первой попытке ftp содержит 5 файлов, потребитель извлекает данные куда-то и ждет 5 секунд, при второй попытке ftp остается тем же, а camel просто ничего не делает, после этого на ftp поступает еще 5 файлов, и через 5 секунд ftp-потребитель загружает эти только что поступившие новые файлы или потребителя.задержка просто заставляет пользователя ждать между каждой загрузкой файла (файл # 1 -> 5s -> файл # 2 -> 5s -> etc …)

Я хочу реализовать первый сценарий.

Кроме того, я заметил, что после загрузки некоторых файлов в папку назначения, я имею в виду с ftp в локальную файловую систему, эти файлы будут игнорироваться при последующих загрузках данных, даже если эти файлы были удалены в локальной файловой системе, как я могу сообщить camel, чтобы он снова загружал удаленные файлы, как он хранит информацию об уже загруженных файлах? И кажется, что он загружает все файлы каждый раз, когда даже файлы были загружены при первом извлечении данных. Нужно ли мне написать фильтр для исключения уже загруженных файлов?

Ответ №1:

для apache camel есть FTP-компонентhttp://camel.apache.org/ftp.html

используйте «потребитель.свойство «delay» для извлечения данных с задержкой в миллисекундах между каждым опросом.

подробности реализации смотрите здесь http://architects.dzone.com/articles/apache-camel-integration

Комментарии:

1. Существует конвертер типов String -> Long, поэтому, если вы установите delay = 15m, это означает 15 минут. Это легче прочитать, чем значение в миллисекундах.

2. Кстати, если вы используете Camel 2.x, то вам следует использовать эту ссылку для компонента FTP, поскольку она была переписана для Camel 2.0: camel.apache.org/ftp2

3. Предложение спасибо, пожалуйста, просмотрите ОБНОВЛЕНИЕ № 1 моего вопроса

4. Ссылка на реализацию сейчас недоступна architects.dzone.com/articles/apache-camel-integration?page=0 , 1 , где мы находим это сейчас?