2012-03-13 20 views
2

Web管理ツールにログインすると、「アクティブな接続」のキューにキューの詳細セクションに「アクティブ」のステータスが表示されます。私は永続的な接続を持っていないWeb上のクライアントからWebサービスAPIを介してこのキューを単にポーリングしているので、アクティブな接続の概念は私のものであることに注意してください。主な問題は、プログラムでこのステータスを取得する方法です。私はJava(Spring AMQP)を使用していますが、必要に応じてウサギのJava APIに戻って潜水することができます。RabbitMQがキューの状態が管理ツールでアクティブであるかどうかを確認する方法

私もHTTP APIを見てきましたが、HTTP管理ポータルの「ステータス:アクティブ」表示には直接一致していません。

答えて

3

掘り下げたあと、HTTP APIの結果を調べてキューがアイドルであるかどうかを確認できました。キューの結果にフィールド "idle_since"がある場合、フィールドが存在しない場合、キューはアイドル状態です。

私のケースでは、キューの活動に基づいてユーザーの「存在」を判断しようとしていましたが、このフィールドはその情報を提供しません。このフィールドは、最近何かが起こったという事実を反映しています(ブローカ内のメモリを節約するためにキューにはアイドルマークが付けられています)。上記の「何か」は私の場合は問題ないキューにアクセスするクライアントかもしれませんが、rabbitmqctlコマンドからlist_queuesを呼び出す監視ツールでもかまいません。

シンプルなプレゼンス通知/メッセージングを行う場合は、最初に、新しい交換タイプをウサギに追加する拡張機能と、2番目の機能は、Exchangeとのバインディングを使用してプレゼンス通知を実装する方法についてのセクションを含むブログ記事です。

https://github.com/tonyg/presence-exchange

http://www.rabbitmq.com/blog/2010/10/19/exchange-to-exchange-bindings/

関連する問題