Apache Camel ftp consumer загружает одни и те же файлы снова и снова

У меня следующая конфигурация spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://camel.apache.org/schema/spring 
       http://camel.apache.org/schema/spring/camel-spring.xsd">

    <bean id="downloadLogger" class="com.thomsonreuters.oa.sdi.camel.DownloadLogger" />

    <bean id="fileFilter" class="com.thomsonreuters.oa.sdi.camel.IgnoreReadyFilesFilter" />

    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="ftp://url_to_ftp?password=*******&amp;noop=true&amp;stepwise=false&amp;binary=true&amp;consumer.delay=10s&amp;recursive=true&amp;filter=#fileFilter" />
            <process ref="downloadLogger" />
            <to uri="file:data/outbox" />
        </route>
    </camelContext>

</beans>

На стороне ftp у меня есть 3 папки с файлами, которые я хочу загрузить. Я хочу добиться следующего сценария:

  1. На ftp находится фиксированное количество файлов (например, 5), при первой попытке data pull consumer загружает эти файлы в папку назначения
  2. При второй попытке загрузить файлы, состояние ftp остается прежним (5 файлов) и camel ftp consumer просто ничего не делает (кроме проверки новых файлов)
  3. На ftp приходят новые 2 файла, и при этом data pull consumer загружает только эти новые два файла

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

6
задан skaffman 18 April 2011 в 20:23
поделиться