Frage

mein Kamel Route ist unten angegeben

 <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>

Die Sendemethode Nachrichten sendet, wenn sie von einer dritten Partei Pojo irgend unregelmäßigen intervals.But aktiviert, das Problem, das ich denke, ist Kamel Neustarten ist die Routen, sobald die Nachricht werden von recv Bohne und Zurücksenden die gleiche Botschaft (Hunderter von ihnen in einer Sekunde) empfangen .Ideally ich will es die Nachricht senden, wenn die Sendemethode wird aktiviert und eine neue Nachricht erstellt wurde (das heißt JMS Queue sollte einzigartige Botschaft werden muß) .Wie ich dies tun zu tun?

mögliche Lösungen zu sein:

  1. ist sie einige Attribute, die ich in dem <from.../> platzieren kann, dies zu tun?
  2. schreibt einen Prozessor zum Filter einzigartiger Botschaft zwischen dem Sende Bean und der Warteschlange.
  3. Ist sie eine andere Art und Weise es von Routing, ohne den <from uri="bean:..." /> mit

Dank sanre6

War es hilfreich?

Lösung

Sie sollten nicht die erste Route haben. Wenn Sie das tun, dass Sie Camel sagen ständig rufen Sie die Sendemethode auf dieser Bohne und routen. Und daher, warum sehen Sie 100s von Nachrichten pro Sekunde.

Stattdessen sollten Sie einige Camel API aus Ihrem Bean-Code verwenden und die Nachricht an die JMS-Warteschlange senden. Zum Beispiel einer ProducerTemplate verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top