верблюжий ftp2 файл сбрасывает ошибку, когда в папке нет файла - PullRequest
0 голосов
/ 12 ноября 2018

Я работаю над чтением файлов по пути sftp и обрабатываю простые текстовые файлы, которые хранятся на сервере каждые 5 часов. Существует требование, когда мне нужно выдать исключение, если производитель не хранит / хранит файл на сервере . Я использую следующее для чтения файлов

from(sftp://NUID@SERVER:PORT?&preferredAuthentications=password&delete=true)
            .routeId(ROUTE_ID)
            .log("${body}")
            .process(processor)
            .end();

Теперь, если при запуске вышеуказанного маршрута нет файла, он ничего не говорит, если на сервере он использует файл и обрабатывает его. Я хочу выдать исключение, если в течение определенного периода времени файла нет.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Некоторый возможный способ вызвать исключение, если на целевом сервере нет файла.

1. Используйте параметр sendEmptyMessageWhenIdle (из файл )

Установите эту опцию на true, чтобы ваш маршрут получал обмен с пустым сообщением, когда потребитель опроса не сканирует файл на целевом сервере. Затем вы можете добавить новый шаг в свой маршрут, чтобы вызвать исключение при обнаружении пустого сообщения (но не обычного обмена).

2. Настройте другой маршрут с помощью компонента timer для проверки времени последней обработки файла

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

Недостаток: ложная тревога может возникнуть из-за другой проблемы (например, проблема с непрерывной сетью)

0 голосов
/ 12 ноября 2018

Какое исключение, которое вы получаете, называется?

Я проверил документ http://camel.apache.org/ftp2.html, и это может быть вызвано тем, что для параметра не задано значение true. Пожалуйста, попробуйте еще раз с ignoreFileNotFoundOrPermissionError=true, а также проверьте в документе другие возможные варианты.

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