登录到 Web 管理工具时,具有“活动连接”的队列在队列的详细信息部分显示“活动”状态。请注意,活动连接的概念是我自己的,因为我只是通过 Web 服务 API 从客户端通过 Web 轮询此队列,我没有持久连接。主要问题是如何以编程方式检索此状态?我正在使用 Java (Spring AMQP),但如果需要,我可以深入研究 rabbit java api。
我还查看了 HTTP API,但据我所知,它与 HTTP 管理门户中的“状态:活动”显示没有直接匹配。
登录到 Web 管理工具时,具有“活动连接”的队列在队列的详细信息部分显示“活动”状态。请注意,活动连接的概念是我自己的,因为我只是通过 Web 服务 API 从客户端通过 Web 轮询此队列,我没有持久连接。主要问题是如何以编程方式检索此状态?我正在使用 Java (Spring AMQP),但如果需要,我可以深入研究 rabbit java api。
我还查看了 HTTP API,但据我所知,它与 HTTP 管理门户中的“状态:活动”显示没有直接匹配。
经过一番挖掘,我发现您可以通过查看 HTTP api 结果来确定队列是否空闲。如果队列的结果具有字段“idle_since”,则如果该字段不存在,则队列处于空闲状态,则队列处于活动状态。
就我而言,我希望根据队列活动确定用户的“存在”,而该字段不提供该信息。该字段反映了最近发生了“某事”的事实(队列被标记为偶像以节省代理中的内存)。上面提到的“某物”可能是访问队列的客户端,在我的情况下这很好,但也可能是从 rabbitmqctl 命令调用 list_queues 的监视工具。
如果您正在寻找一些简单的存在通知/消息传递。这里有两个可能会有所帮助的链接。第一个是为 rabbit 添加新的交换类型的扩展,第二个是一篇博客文章,其中有一节介绍了如何使用交换来交换绑定来实现存在通知。
https://github.com/tonyg/presence-exchange
http://www.rabbitmq.com/blog/2010/10/19/exchange-to-exchange-bindings/