Проблема с маршрутизацией между двумя бобами с использованием верблюда Apache

StackOverflow https://stackoverflow.com/questions/3845598

  •  27-09-2019
  •  | 
  •  

Вопрос

Маршрут мой верблюд дан ниже

 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >
    <route>
      <from uri="bean:SendClass?method=send" />
      <to uri="jms:MyQueue" pattern="InOnly" />
    </route>
    <route>
    <from uri="jms:MyQueue" />
    <to uri="bean:recvClass?method=recv" />
    </route>
  </camelContext>

Метод отправки отправляет сообщения при активации 3-го вечеринка POJO на некоторых нерегулярных интервалах. Нота, проблема, я думаю, это верблюда, перезапускается маршруты после получения сообщения по бону Recv и отправляя то же самое сообщение (сотни из них через секунду ) .Ideally Я хочу, чтобы он отправил сообщение, когда метод отправки будет активирован, и было создано новое сообщение (то есть очередь JMS должна иметь уникальное сообщение). Как я делаю это?

Возможные решения являются:

  1. это их атрибут, который я могу разместить внутри <from.../> сделать это ?
  2. Напишите процессор для фильтрации уникального сообщения между отправкой BEAL и очередью.
  3. Это их другой способ маршрутизации без использования <from uri="bean:..." />

Спасибо SANRE6.

Это было полезно?

Решение

У вас не должно быть 1-го маршрута. Когда вы делаете это, вы скажете, верблюде постоянно вызовут метод отправки на этом бобовом и направлении его. И, следовательно, почему вы видите 100 из сообщений в секунду.

Вместо этого вы должны использовать некоторое верблюда API из в пределах вашего кода бобов и отправить сообщение в очередь JMS. Например, использование производительности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top