Будучи новичком в SCDF, я запустил на своем компьютере последнюю доступную версию (на данный момент 1.7.2) благодаря docker-compose.yml
С тех пор у меня возникают проблемы с использованием прилагаемого к нему приложения с исходным кодом ftp.
Я настроил тестовый поток благодаря веб-интерфейсу следующим образом:
ftp
--auto-create-local-dir=true
--filename-pattern=Test.csv
--mode=contents
--password=MyPassword
--delete-remote-files=false
--host=myhost.preprod.org
--remote-dir=TheRemoteDir
--fixed-delay=30
--initial-delay=15
--username=aFtpUser
|
file
--name-expression='ftp_'.concat(T(java.time.LocalDateTime).now().toString())
--suffix=.csv
--directory=/tmp/testScdf
И я заметил, что:
1) При первоначальном запуске этого потока создается файл в каталоге / tmp / testScdf в контейнере докера, в котором размещается приложение для файлов
2) Все последующие триггеры завершаются неудачно, что не приводит к созданию дополнительного файла
3) Отслеживание журналов приложений ftp Я вижу следующую запись WARN, появляющуюся каждые 30 секунд:
2018-11-09 16:51:30.491 WARN 68 --- [ask-scheduler-5] o.s.i.f.i.FtpInboundFileSynchronizer : The remote file '11-09-18 04:41PM 4678 Test.csv' has not been transferred to the existing local file '/tmp/xd/ftp/Test.csv'. Consider removing the local file.
4) Действительно, когда я docker exec -it dataflow-server ls -la /tmp/xd/ftp/
вижу, этот каталог никогда не очищается.
5) Я не могу найти какие-либо параметры на уровне исходного приложения ftp, которые, по-видимому, являются допустимым кандидатом, чтобы попросить это приложение выполнить очистку после успешного приема потока.
Я озадачен:
почему приложение исходного кода ftp не удаляет загружаемые файлы в своем каталоге tmp (здесь / tmp / xd / ftp /)?
почему это приложение должно получать файл как фактический файл, а не управлять им как потоком файла в памяти?
Полагаю, что либо эта опция отсутствует, либо, что более вероятно, мне не хватает важной концепции SCDF
Любые комментарии / помощь будут с благодарностью.