Перечитать файл при использовании int-sftp:inbound-channel-adapter

У меня есть int-sftp:inbound-channel-adapter, который использует SftpPersistentAcceptOnceFileListFilter как часть составного фильтра. Читая документацию/исходный код, он должен принять файл для повторного чтения, если измененная дата и время изменились, но я не могу заставить его работать, он читает только один раз. Я использую Redis в качестве хранилища.

Любые идеи, что не так с конфигурацией, я использую Spring Integration 4.3.5

<int-sftp:inbound-channel-adapter id="sftpInboundAdapterCensus"
    channel="sftpInboundCensus"
    session-factory="sftpSessionFactory"
    local-directory="${sftp.localdirectory}/census-local"
    filter="censusCompositeFilter"
    remote-file-separator="/"
    remote-directory="${sftp.directory.census}">
    <int:poller cron="${sftp.cron}" max-messages-per-poll="1" error-channel="pollerErrorChannel"/>
</int-sftp:inbound-channel-adapter>

<bean id="censusCompositeFilter"
class="org.springframework.integration.file.filters.CompositeFileListFilter">
<constructor-arg>
 <list>
     <bean class="org.springframework.integration.sftp.filters.SftpSimplePatternFileListFilter">
         <constructor-arg value="*.xml" />
     </bean>
     <bean id="SftpPersistentAcceptOnceFileListFilter" class="org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter">
         <constructor-arg ref="metadataStore" />
         <constructor-arg value="censusSampleLock_" />
     </bean>
 </list>
</constructor-arg>
</bean>

person sdiaz1000    schedule 27.04.2017    source источник


Ответы (1)


SftpPersistentAcceptOnceFileListFilter контролирует только то, что мы получаем с сервера. Вам также нужен FileSystemPersistentAcceptOnceFileListFilter в local-filter (который определяет, какие файлы, которые были извлечены, в конечном итоге отправляются в виде сообщений). Локальный фильтр по умолчанию AcceptOnceFileListFilter.

person Gary Russell    schedule 27.04.2017
comment
Еще раз спасибо Гэри, это сработало. Я перечитал документацию, и на самом деле там сказано именно это, я, должно быть, неправильно прочитал. docs.spring.io/ авторепо/docs/spring-integration/4.3.7.RELEASE/ - person sdiaz1000; 28.04.2017
comment
См. рекомендации по принятию ответа — это поможет другим пользователям искать похожие вопросы/ответы. - person Gary Russell; 28.04.2017