Я использую пользовательский SFTP-коннектор в Mule (написанный на Groovy) для загрузки файлов в локальную папку два раза в день. Я установил тайм-аут SFTP на 30 секунд, частоту опроса входящего соединителя файлов на 0,5 секунды и срок хранения файлов на 1 секунду.
Один раз в несколько дней процесс завершится неудачей на этапе переплетения / преобразования данных. В журнале указывается, что обязательное поле пустое, однако, когда я проверяю файл вручную, значение там есть. Кроме того, случайным образом происходит сбой любого поля в файле, как если бы файл был неполным, а это не так - когда я сравниваю загруженный файл с удаленным сервером, они идентичны. Если я вручную запускаю процесс на локальном компьютере, он всегда успешно завершается, что затрудняет репликацию этой проблемы.
Это подсказывает мне, что файл обрабатывается до завершения загрузки.
Есть ли способ определить, завершена ли загрузка файла с SFTP-сервера, прежде чем процессор начнет анализировать файл?