Пользовательский компонент Camel - вызов FTP внутри потребителя FTP - PullRequest
1 голос
/ 02 июля 2019

Я пытаюсь создать пользовательский компонент Camel.

Это для старой системы, которая связывается с FTP (ведет разговор с файлами, чтобы получить лучшее описание). Мой потребитель поэтому расширяет FtpConsumer. Он будет опрашивать файлы, который работает нормально.

Что мне нужно сделать, это создать еще одно FTP-соединение - технически к той же машине, но по другому пути. В своих экспериментах я использовал шаблон Consumer Template с созданным URI, чтобы перейти и получить мне другой файл (на основе содержимого файла опроса).

Это сработало на высоком уровне и захватывает нужный мне файл. Кто-нибудь может подтвердить, опасно ли это делать?

Согласно документации:

Потребитель FTP (с той же конечной точкой) не поддерживает параллелизм (резервный FTP-клиент не является потокобезопасным). Вы можете использовать несколько пользователей FTP для опроса с разных конечных точек. Это только одна конечная точка, которая не поддерживает одновременных потребителей.

Может ли это иметь последствия здесь? Есть ли лучший способ сделать это вторичное FTP-соединение? Особенно безопасный путь.

Конечно, нужный мне файл получен, и я могу передать его дальше по маршруту Camel, однако у меня возникают проблемы, когда я перехожу к обработке на уровне байтов (побитовые вычисления и т. Д.) При работе на FTP потоковый файл, и мне интересно, связано ли это с ним.

Итак, я полагаю, что мой главный вопрос заключается в том, каков безопасный способ верблюда вызывать несколько команд FTP, как я описал для одного потребителя?

Если то, что я делаю, должно сработать, то, возможно, мне нужен новый вопрос, касающийся моих побитовых операций с этими данными (в основном, они всегда работают нормально, если выполняется только одно получение по FTP - т. Е. Потребитель запускает процесс на опрашиваемый файл. Но если я опрашиваю файл, а затем использую его для получения другого файла, обработка этого файла завершается сбоем на низком уровне - как будто возникают проблемы с памятью / многопоточностью).

1 Ответ

0 голосов
/ 03 июля 2019

Чтобы установить другое FTP-соединение (тот же компьютер, другой путь), вы можете использовать pollEnrich в своем маршруте.


Потребитель FTP (с той же конечной точкой) не поддерживает параллелизм (резервный FTP-клиент не является потокобезопасным). Вы можете использовать несколько пользователей FTP для опроса с разных конечных точек. Это только одна конечная точка, которая не поддерживает одновременных потребителей.

В этой части указывается, что если у вас есть несколько точек-получателей FTP для одной и той же конечной точки (то есть один и тот же компьютер, один и тот же путь). Они могут конкурировать с одним и тем же файлом, что приведет к использованию дублированного / неполного / пустого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...