Объединение 6 файлов в один файл с помощью Apache Camel

У меня есть требование, по которому я должен агрегировать / объединить 6 XML-файлов в один XML-файл с помощью Apache Camel. Проблема в том, что 6 файлов xml смонтированы в папке, которую будут опрашивать 6 разных серверов. Итак, если каждый сервер берет один файл и блокирует его, как я могу объединить и создать один XML-файл?

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

Пожалуйста, помогите с решением, если кто-то столкнулся с подобной проблемой.

Спасибо


person chand    schedule 30.04.2015    source источник
comment
Возможно, вы сможете реализовать свою собственную GenericFileProcessStrategy, где вы проверяете, есть ли в одном из 6 файлов файл блокировки, а затем прекращаете потребление. Было бы интересно узнать, какие файлы принадлежат друг другу.   -  person soilworker    schedule 30.04.2015


Ответы (1)


Из документации по верблюдам http://camel.apache.org/file2.html

fileLock is for using java.nio.channels.FileLock. 
This option is not avail for the FTP component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks. 

Так что это должно помочь со сценарием блокировки файлов.

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

person Ashoka    schedule 30.04.2015
comment
Вы умеете разбираться? На самом деле я написал стратегию агрегирования для объединения xmls .. - person chand; 04.05.2015