в моем приложении для верблюдов это файл процесса с ftp-сервера. Когда я тестирую, я обнаружил во время загрузки файла, тем временем мой маршрут начинает забирать этот файл и выполнять процесс. Я установил для readLock значение «изменено», а задержку «60000», мой файл составляет около 500 м. Я ничего не упускаю?
Apache Camel ftp: как запретить компоненту ftp обрабатывать файл при записи этого файла
Ответы (1)
Обратите внимание, что параметр delay
— это всего лишь фиксированный интервал, который не «связан» с readLock.
Параметр readLock changed
каждую секунду проверяет, изменился ли размер файла. При медленной загрузке это может быть причиной того, что файлы, которые все еще загружаются, уже используются.
Вы можете попробовать увеличить readLockCheckInterval
выше 1 секунды.
См. Документы Camel FTP для получения дополнительной информации и параметров (вариант readLock
)
person
burki
schedule
11.02.2020
This interval is used for sleeping between attempts to acquire the read lock.
поэтому при каждой проверке механизм проверки вроде не должен меняться.
- person user6807013; 12.02.2020
Да, если, например, комментарий Клауса с чч: мм относится к вашему случаю, вам нужно установить
readLockCheckInterval
как минимум на 1 минуту, чтобы распознать файл, который все еще загружен. Затем Camel будет каждую минуту проверять, изменился ли размер файла, и продолжать делать это до тех пор, пока размер файла не изменится между двумя проверками. Это, очевидно, приводит к заметной задержке использования файла.
- person burki; 13.02.2020
markerFile - Camel creates a marker file (fileName.camelLock) and then holds a lock on it. This option is not available for the FTP component
, означает ли это, что файлы маркеров не могут использоваться в моей ситуации - компонент ftp. - person user6807013   schedule 12.02.2020if the file is written using a temporary name and then renamed when done
? - person user6807013   schedule 12.02.2020