Передача файлов Mule без удаления исходных файлов - PullRequest
5 голосов
/ 15 декабря 2011

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

На консоли отображается:

org.mule.transport.file.FileMessageReceiver: Lock obtained on file:

Мой конфигурационный файл ниже:

<flow name="File-FTP-Bridge">
    <file:inbound-endpoint path="${outbound.input.path}"
        moveToDirectory="${outbound.input.backup.path}">
        <file:filename-wildcard-filter
            pattern="*.msg" />
    </file:inbound-endpoint>
    <ftp:outbound-endpoint user="${outbound.ftp.user}"
        password="${outbound.ftp.password}" host="${outbound.ftp.host}"
        path="${outbound.ftp.path}" port="${outbound.ftp.port}"
        outputPattern="#[header:originalFilename]">
    </ftp:outbound-endpoint>
</flow>

Я не смог найти причину этой проблемы.Заранее спасибо.

1 Ответ

3 голосов
/ 15 декабря 2011

В вашей конечной точке файла отсутствуют атрибуты pollingFrequency , что означает, что по умолчанию используется значение 1000 мс.Это делает файлы опроса Mule намного быстрее, чем конечная точка FTP может их обработать.Попробуйте, например:

pollingFrequency="10000"

Если этого недостаточно, поскольку загрузка по FTP имеет непредсказуемые результаты (поэтому Мул все еще повторяет загружаемый файл), тогда , если ваши файлы достаточно маленькиевписывается в память , попробуйте добавить:

<object-to-byte-array-transformer />

между входящей и исходящей конечной точкой.Это загружает файл в память и сразу же перемещает его в outbound.input.backup.path перед попыткой загрузки по FTP.Конечно, если загрузка по FTP не удалась, вам придется переместить файл обратно в outbound.input.path ...

...