Apache Camel имеет очень хорошую поддержку для различных протоколов, таких как FTP и «файл», и я хотел бы использовать его просто для загрузки одного файла и, возможно, его преобразования.Как использовать Apache Camel для загрузки только одного файла?
Я понял, как это сделать, используя RouteBuilder и CamelContext.start(), как в примерах, но мне не нужен фоновый демон в бесконечном цикле и мне не нужна сложная маршрутизация.
Как я могу сделать что-то вроде:
String body = new DefaultCamelContext().justRunOnce(
from("ftp://ftp.example.com/data/foo.txt")
.validate(body().regex("My Data.*"))
.getBody());
Я прочитал некоторые ответы о том, как остановить маршрут с помощью «шина управления действие = остановить?» Или или аналогичные, но те еще «таймер повторить = 1?» запустите Camel как новый поток, а затем используйте некоторые хаки, чтобы остановить его. Я не ищу сложное решение, которое каким-то образом управляет им, а скорее хотел бы знать, способен ли Camel быть использован в скудной 10-лайнере, как в моем примере выше.
Возможный дубликат [Как получить Camel FTP для получения только один раз по запросу] (http://stackoverflow.com/questions/31819073/how-to-get-camel-ftp-to-fetch-only-once-on-demand) –
Наверняка, есть лучше чем использование структуры корпоративных шаблонов интеграции для загрузки одного файла и сделать очень простую обработку на нем. – Strelok
Просто используйте ConsumerTemplate для загрузки файла один раз, и нет необходимости в каких-либо Маршрутах –