2

私のラクダルートを以下に示します

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

send メソッドは、サード パーティの Pojo によってアクティブ化されたときに不規則な間隔でメッセージを送信します。 ).理想的には、送信メソッドがアクティブになり、新しいメッセージが作成されたときにメッセージを送信する必要があります(つまり、JMSキューには一意のメッセージが必要です).どうすればよいですか?

可能な解決策は次のとおりです。

  1. これを行うために内部に配置できる属性はあり<from.../>ますか?
  2. send Bean と queue の間の一意のメッセージをフィルタリングするプロセッサを作成します。
  3. を使用せずにルーティングする他の方法はありますか<from uri="bean:..." />

ありがとう sanre6

4

1 に答える 1

2

最初のルートはありません。これを行うと、その Bean で常に send メソッドを呼び出してルーティングするように Camel に指示します。したがって、毎秒数百のメッセージが表示されるのはなぜですか。

代わりに、Bean コード内からいくつかの Camel API を使用して、メッセージを JMS キューに送信する必要があります。たとえば、ProducerTemplate を使用します。

于 2010-10-03T08:54:38.440 に答える