2013-07-30 2 views
0

Мы работаем над POC, чтобы использовать интеграцию Spring и Mab Rabbit. У нас есть два модуля производителя модулей, а потребительский модуль работает в разных JVM. Модуль «Продюсер» прослушивает папку (входную папку), как только появятся новые файлы, создает сообщение, затем нажимает на очередь (incoming.q.in), а также перемещается в папку процесса.файл входящего канала-адаптера, не создающего сообщений

В модуле производителя у нас есть код ниже. Когда я запустил около 100 файлов в входящей папке, обработано и перемещено в обрабатываемую папку около 90 файлов, но 10 файлов не переместились в папку процесса.

Для неудачных случаев эти сообщения в лог-файл

 .... 

[07/30/13 07: 34: 23: 023 EDT] [taskExecutor-3] DEBUG org.springframework.integration.file. FileReadingMessageSource Добавлен в очередь: [test.xml] [07/30/13 07: 34: 23: 023 EDT] [taskExecutor-3] DEBUG org.springframework.integration.endpoint.SourcePollingChannelAdapter Получено сообщение Сообщение во время опроса, false '

 .... 

для успешного случая

 .... 

[07/30/13 07: 34: 32: 032 EDT] [taskExecutor-1] ОТЛАДКА org.springframework.integration.file.FileReadingMessageSource Добавлено в очередь: [test_0.xml] [07/30/13 07: 34: 32: 032 EDT] [taskExecutor-1] INFO org.springframework.integration.file.FileReadingMessageSource Созданное сообщение: [[Payload =/apps/incoming/test_0.xml] [Headers = {timestamp = 1375184072466 , ID = d8d4cea4-A25D-4869-b287-e76cfb76f554}]]

 .... 

Вот код

<file:inbound-channel-adapter id="inboundAdapter" channel="inboundChannel" directory="file:${incoming_folder}" prevent-duplicates="true" filename-pattern="*.*" auto-startup="true" > 
    <int:poller id="fileInboudPoller" fixed-rate="3" receive-timeout="3" time-unit="SECONDS" max-messages-per-poll="1" task-executor="taskExecutor"/> 
    <file:nio-locker /> 
</file:inbound-channel-adapter> 

ответ

1

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

BTW, распространенная ошибка в таких приложениях, как копирование файлов «на месте», так что потребитель может увидеть неполный файл.

Общей методикой, позволяющей избежать этих проблем, является копирование файла с временным именем и переименование его только после его полной записи.

+0

Спасибо Гэри. Файлы генерируются другой системой. Мы попытаемся использовать временный подход к имени файла и сообщим вам о результатах. – Mohan

+0

Он работал идеально. – Mohan

Смежные вопросы