0

こんにちは、みんな

jJavaRabbitMQで inを使用する場合、2 つの質問があります。ubuntu

まず、キューからメッセージを取得する方法は? 次のような 2 つの「正しい」方法があります。

ConnectionFactory factory = new ConnectionFactory(params);  
Connection conn = factory.newConnection("localhost", 5672);  
Channel channel = conn.createChannel(); 
String message=channel.basicGet("queuename", noAck).getBody();

そしてもう一つは

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare("queuename", true, false, false, null);
QueueingConsumer consumer = new QueueingConsumer(channel);
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());

どちらが正しいですか?両方ある場合、それらの違いは何ですか?

次に、キュー内のメッセージ数を知るにはどうすればよいですか? つまり、キューが空かどうかを確認したいのです。

使用できる API はありますか? channel.basicGet?

ackキューにいくつかのメッセージがある場合、何がchannel.basicGet返されますか?実際には、channel.basicGet の 2 番目のパラメーターが何を意味するのかわかりません....

どうもありがとうございました

4

1 に答える 1

1

最初のオプションは、個々のメッセージを取得することです。noAck パラメータはブール値で、自動応答するかどうかを示します。no に設定されている場合は、手動で確認する必要があります。

詳細については、 http ://www.rabbitmq.com/api-guide.html を参照してください。

QueueingConsumer を使用する 2 番目のオプション。サーバーからプッシュされたメッセージをバッファリングするために使用されるクラス。このオプションでキューも作成します。

channel.queueDeclare("queuename", true, false, false, null);

このオプションの詳細については、http ://www.rabbitmq.com/tutorials/tutorial-one-java.html を参照してください。

最後に一つだけ。Springに精通している場合は、これも読むことをお勧めします: http://docs.spring.io/spring-integration/docs/latest-ga/reference/html/

使いました。その簡単で明確です。

于 2013-08-05T07:38:46.913 に答える