Объедините сообщения с верблюдом - PullRequest
0 голосов
/ 11 марта 2019

У меня есть этот верблюжий маршрут с приложением springboot

from(qn)
    .unmarshal(xmlDataFormat)                   //Unmarshall message to Java Object
    .process(locationProcessor)                 //Process the message and creates the location object if it's valid Plant
    .choice()
    .when(header("validMLMLocation").endsWith("yes"))   //do it if location is valid only 
        .marshall(locationMarshProcessor)
      .to("file:"+env.getProperty("location.file.path") + "?fileName=location-${header.binloc}-" + new Date().getTime() +".xml")             
    .otherwise()            
        .log(LoggingLevel.INFO,logger, "~~~ location is invalid")
    .end();

Я получаю местоположения в сообщениях MQ, отправляю их в класс Java, а затем обрабатываю объект сообщения. если он действителен, я создаю объект LOCATION POJO и собираю его в XML, затем записываю XML в файл.

Проблема состоит в том, что тысячи сообщений могут быстро прийти, поэтому мне нужно объединить каждые 500 местоположений в один файл.

Я не уверен, как это сделать в Camel,
Есть ли способ «кэшировать» или собирать сообщения в какой-то список, пока счетчик не достигнет 500, затем записать их в файл и начать новый список?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...