Я пытаюсь создать пользовательский компонент Camel.
Это для старой системы, которая связывается с FTP (ведет разговор с файлами, чтобы получить лучшее описание). Мой потребитель поэтому расширяет FtpConsumer
.
Он будет опрашивать файлы, который работает нормально.
Что мне нужно сделать, это создать еще одно FTP-соединение - технически к той же машине, но по другому пути.
В своих экспериментах я использовал шаблон Consumer Template с созданным URI, чтобы перейти и получить мне другой файл (на основе содержимого файла опроса).
Это сработало на высоком уровне и захватывает нужный мне файл.
Кто-нибудь может подтвердить, опасно ли это делать?
Согласно документации:
Потребитель FTP (с той же конечной точкой) не поддерживает параллелизм (резервный FTP-клиент не является потокобезопасным).
Вы можете использовать несколько пользователей FTP для опроса с разных конечных точек. Это только одна конечная точка, которая не поддерживает одновременных потребителей.
Может ли это иметь последствия здесь?
Есть ли лучший способ сделать это вторичное FTP-соединение? Особенно безопасный путь.
Конечно, нужный мне файл получен, и я могу передать его дальше по маршруту Camel, однако у меня возникают проблемы, когда я перехожу к обработке на уровне байтов (побитовые вычисления и т. Д.) При работе на FTP потоковый файл, и мне интересно, связано ли это с ним.
Итак, я полагаю, что мой главный вопрос заключается в том, каков безопасный способ верблюда вызывать несколько команд FTP, как я описал для одного потребителя?
Если то, что я делаю, должно сработать, то, возможно, мне нужен новый вопрос, касающийся моих побитовых операций с этими данными (в основном, они всегда работают нормально, если выполняется только одно получение по FTP - т. Е. Потребитель запускает процесс на опрашиваемый файл. Но если я опрашиваю файл, а затем использую его для получения другого файла, обработка этого файла завершается сбоем на низком уровне - как будто возникают проблемы с памятью / многопоточностью).