2013-05-16 10 views
10

ホープこれはばかげて聞こえませんが、どうすればいいですか?メッセージを破棄します in Camel 目的でApache Camelのメッセージを却下

これまで、私はそれらをLog-Componentに送っていましたが、私は引き出しをログに記録したくもありませんでした。

Camelには、/dev/null Endpointがありますか?

答えて

17

メッセージフィルターのeipを使用して、不要なメッセージを除外できます。 http://camel.apache.org/message-filter

dev/nullコンポーネントはありません。

また、経路で使用できるstop />があります。メッセージが届くと、ルーティングを続行します。

私たちがdev/nullにもっとも近いのは、logLeve = OFFをオプションとして設定するログにルーティングすることです。私の同僚(コード名:cayha)に信用して

+0

を使用して、URI /モックURI設定にを置くことができますが、あなたのクラウスありがとう、.stop()の部分は、私が探していたまさにです。 – Franz

+1

だから理解できる構文は 'log:foo?level = OFF'です。これは、エンドポイントが '.to(" {{my.route.out}} ")'のようなプロパティから定義されていて、ルート自体を変更したくない場合に便利です。何でないか)。 – vikingsteve

1

...

あなたは/dev/nullと同等であるラクダのエンドポイントとしてStub Componentを使用することができます。

私は、このコンポーネントの内部の仕組みを知っていないです(と、メモリリークの危険性、などがある場合)、それは私の作品と私は何の欠点を見ることはできませんが、

activemq:route?abc=xyz 

stub:activemq:route?abc=xyz 

なりこのようにしてください。

+0

過去に「スタブ」を使用していて、大量のメモリが使用されていることを警告するだけです(デフォルトでは、受け取ったものすべてを保持するように見えます)。 – icabod

+0

@cabodありがとう、よく知っておいてください。 'stub:'がテストに分離されている場合、それは懸念すべきではありません。 – vikingsteve

0

1はproperty component

<camelContext ...> 
    <propertyPlaceholder id="properties" location="ref:myProperties"/> 
</camelContext> 

// properties 
cool.end=mock:result 
# cool.end=result 

// route 
from("direct:start").to("properties:{{cool.end}}"); 
+0

モックはガベージコレクションが処理できないソフトリファレンスとして持続するため、メモリリークを引き起こします。 – Murasame

関連する問題