У меня следующая конфигурация 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=*******&noop=true&stepwise=false&binary=true&consumer.delay=10s&recursive=true&filter=#fileFilter" />
<process ref="downloadLogger" />
<to uri="file:data/outbox" />
</route>
</camelContext>
</beans>
На стороне ftp у меня есть 3 папки с файлами, которые я хочу загрузить. Я хочу добиться следующего сценария:
На данный момент мое текущее решение загружает все файлы каждый раз, когда я запускаю процесс dataload, Как я могу управлять информацией о загруженных файлах, чтобы предотвратить загрузку дубликатов (я имею в виду уже скопированные файлы с ftp), я могу написать свой собственный фильтр, который будет отфильтровывать уже загруженные файлы, но я считаю, что должна быть встроенная функция, которая даст мне контроль над этим (возможно idempotentRepository, на самом деле я не уверен). ..