Адаптер входящего канала Sftp: дубликаты сообщений

Я хочу загружать файлы через sftp из двух отдельных каталогов в одну локальную папку. Итак, у меня есть два адаптера входящего канала, как это:

<bean id="lastModifiedFileFilter" class="com.test.sftp.SftpLastModifiedFileListFilter">
    <constructor-arg name="age" value="100"/>
</bean>

<int:poller id="fixedRatePoller" fixed-rate="100"
            time-unit="SECONDS"/>

<int-sftp:inbound-channel-adapter id="inbound1"
                                  session-factory="sftpSessionFactory"
                                  auto-create-local-directory="true"
                                  delete-remote-files="true"
                                  remote-directory="/remote-folder1"
                                  filter="lastModifiedFileFilter"
                                  local-directory="/local-folder"
                                  channel="nullChannel">
   <int:poller ref="fixedRatePoller"/>
</int-sftp:inbound-channel-adapter>

<int-sftp:inbound-channel-adapter id="inbound2"
                                  session-factory="sftpSessionFactory"
                                  auto-create-local-directory="true"
                                  delete-remote-files="true"
                                  remote-directory="/remote-folder2"
                                  filter="lastModifiedFileFilter"
                                  local-directory="/local-folder"
                                  channel="nullChannel">
   <int:poller ref="fixedRatePoller"/>
</int-sftp:inbound-channel-adapter>

И, например, если новый файл с именем "test.csv" становится в "remote-folder1", в журнале появляются следующие сообщения:

INFO  Created message: [GenericMessage [payload=local-folder/test.csv, headers={id=bb76252a-e826-579d-b0e1-cab55a7cc957, timestamp=1508242673896}]] [task-scheduler-6][FileReadingMessageSource]
INFO  Created message: [GenericMessage [payload=local-folder/test.csv, headers={id=a76de653-f805-8add-1e02-924d0915a18c, timestamp=1508242673962}]] [task-scheduler-2][FileReadingMessageSource]

Это выглядит странно, и я не знаю, почему у меня есть два сообщения в одном файле. Может у меня неправильная конфигурация? Кто-то может объяснить это поведение?

1 ответ

Правильно, вы здесь запутались, потому что у вас есть два адаптера канала опроса для одного и того же локального каталога. Итак, один из адаптеров канала загружает файл из SFTP и создает сообщение из его локальной копии. Но в то же время у нас есть второй опросный адаптер для того же локального каталога. Да, этот файл ничего не делает для удаленного каталога, но локальный файл находится здесь, и он берется еще раз.

Вы должны рассмотреть возможность использования различных локальных каталогов или использовать local-filter не "крадите" файлы из другого канального адаптера.

Другие вопросы по тегам