2012-04-06 2 views
1

Итак, я получил свой ActiveMQ для получения сообщений из другого места woo hoo - счастливый танец, который происходит здесь сегодня утром!ActiveMQ/Camel отправить файл для дальнейшей обработки

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

В частности, в зависимости от имени файла его нужно будет отправить в другую очередь или непосредственно в другой процесс, если это может произойти.

Например, отправляется один файл, содержащий информацию об изменениях в судебном заседании. Мне нужно прочитать этот XML и обновить некоторые локальные таблицы MySQL. Может ли процесс судебного заседания быть веб-сервисом? В идеале я хотел бы просто передать файл к этой службе.

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

Итак, я ищу предложения относительно того, каким будет мой лучший курс действий, чтобы настроить дополнительную обработку файлов, которые отправляются в нашу очередь?

Спасибо, связка !!! BTW - Мы уже заказали «ActiveMQ в действии» и «Верблюд в действии», и я буду читать их, но прямо сейчас, любые конкретные рекомендации для новичков будут очень признательны.

Leslie

ответ

2

Верблюжье content based router является то, что вы ищете. Это позволяет правила маршрутизации установки, основанные на теле сообщения/заголовки/свойства ...

Вот простой пример, который считывает из входящей очереди и просто делегаты других очередей на основе заголовков ...

from("activemq:queue:inboundQueue") 
     .choice() 
      .when(header("foo").isEqualTo("bar")) 
       .to("activemq:queue:barQueue") 
      .when(header("foo").isEqualTo("cheese")) 
       .to("activemq:queue:cheeseQueue") 
      .otherwise() 
       .to("activemq:queue:generalQueue"); 

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

+0

вы удивительны! Я попробую прямо сейчас! – Leslie

+0

ОК У меня есть настроенный весной XML, но я хочу посмотреть, содержит ли имя файла выражение TAHEARING ~ SAVE-COURTSESSION - можете ли вы помочь мне с xPath, который мне понадобится для этого? И когда вы говорите заголовок foo - где это настроено? Я вижу в сообщении, что есть информация заголовка, заменил бы я foo одним из значений из этого списка? Благодаря! – Leslie

+0

Лесли, вы можете изменить «foo», чтобы ссылаться на любое свойство заголовка ... отправить свое XML-сообщение, и я могу попытаться помочь с xpath ... –

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