2016-09-13 10 views
1

プロデューサーからのメッセージがコンシューマーではなくキューに配信されているかどうかを知る必要があります。これは基本的に、キューが存在するかどうかをチェックする別の方法です。Camel RabbitMQパブリッシャーが確認します

私たちはRabbitMQメッセージにキャメルルーティングを使用しており、サイト運営者様の確認が必要です。私はRabbitMQクライアントがパブリッシャーの確認を提供していることを知っていますが、Camelがこの機能をサポートしているかどうかは疑問です。 Camelは次のように使用しています。

@Produce(uri = "direct:event") 
private ProducerTemplate producer; 

void method() { 
    producer.sendBodyAndHeaders("content", HashMapHeaders); 
    //Confirm the acknowledgement 
} 

答えて

0

キャメル(official documentationを参照)発行者の確認をサポートして、あなただけのtruepublisherAcknowledgementsプロパティを設定し、必要に応じてpublisherAcknowledgementsTimeoutプロパティを使用してタイムアウト間隔を指定することで、それらを有効にする必要があります。

to("rabbitmq://localhost/A?routingKey=B&publisherAcknowledgements=true&publisherAcknowledgementsTimeout=10000") 

ことに注意してくださいsupport for this featureはCamel 2.17.0以降で入手可能です。

+0

私に正しい方向を指摘してくれてありがとう。タイムアウト後にトランザクションが失敗するように、プロデューサーにフックが必要になると思います。テストはフックなしでは成功しませんでした。 – user2215545

+0

あなたが何を意味するかわからない - あなたのルートが処理され、タイムアウト期間内に確認が受信されない場合、例外がスローされ、トランザクションはロールバックされます –

関連する問題