3

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

HTTP API も調べましたが、私が知る限り、HTTP 管理ポータルの「ステータス: アクティブ」表示と直接一致するものはありません。

4

1 に答える 1

4

少し掘り下げた後、HTTP apiの結果を見ると、キューがアイドル状態であるかどうかを確認できることがわかりました。キューの結果にフィールド「idle_since」がある場合、フィールドが存在しないとキューはアイドル状態になり、キューはアクティブになります。

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

あなたがいくつかの簡単なプレゼンス通知/メッセージングを行うことを探しているなら。役立つ可能性のある2つのリンクを次に示します。1つ目はrabbitに新しい交換タイプを追加する拡張機能で、2つ目は交換を使用してバインディングを交換するプレゼンス通知を実装する方法に関するセクションを含むブログ投稿です。

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

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

于 2012-03-15T14:00:22.940 に答える