Spring Интеграция DSL FTP

У меня есть входящий Spring для FTP

Я смотрю документ

https://docs.spring.io/spring-integration/reference/html/ftp.html

Если у вас есть один или несколько файлов, находящихся в локальном каталоге, он обработает эти файлы до того, как инициирует связь с удаленным FTP-сервером.

Что именно означает вышеперечисленное?

Например, в моем случае локальный каталог - это тот, из которого будет забираться другой поток. Например, у меня есть 5 файлов в этом каталоге, которые не были подхвачены другим потоком.

Зачем FTP-адаптеру пытаться обработать их снова и что именно он будет делать? Как я могу это остановить?




Ответы (1)


Похоже, вы не подготовили документы для адаптера входящего канала FTP внимательно: https://docs.spring.io/spring-integration/reference/html/ftp.html#ftp-inbound

Это тот тип компонентов, который загружает удаленные файлы в их локальную копию. Вот почему мы говорим здесь о локальном каталоге, и для этого адаптера канала есть опция. Дело в том, что этот адаптер канала загружает удаленные файлы в локальный каталог и только после этого создает сообщение с локальным файлом для отправки в channel. Вы определенно не должны мешать другим компонентам делать что-либо в этом локальном каталоге. В заявлении говорится, что если в этом локальном каталоге уже есть файлы, они сначала публикуются как полезная нагрузка, и только затем этот адаптер канала выбирает маршрут для выборки удаленных файлов.

Вы не сможете остановить эту логику, если не удалите эти файлы после обработки. Хотя вместо этого вы можете использовать адаптер потокового входящего канала: https://docs.spring.io/spring-integration/reference/html/ftp.html#ftp-streaming

person Artem Bilan    schedule 03.01.2020
comment
Спасибо, Артем, в этом есть смысл. Извините, что просто жонглируете слишком многими вещами, так что забудьте про API-документацию, но вы, ребята, потрясающие. Всегда рядом, чтобы помочь - person Makky; 03.01.2020