如何检查 stopmit 中的 AMQ 队列中是否没有要使用的消息 node.js

How to check if there are no message to consume in AMQ queue in stopmit node.js

我正在使用 node.js 的 stompit 包连接到 AMQ 队列以订阅消息。我使用 ConnectFailover class 创建连接并使用 channelPool class 创建池。

我面临的问题是,一旦建立连接,如果队列中没有消息,它就会保持连接状态。

如果没有消息可从队列中读取,我需要一种断开连接的方法。我在 stompit documentation.

中没有看到任何选项

根据 this issue,STOMP 无法做到这一点。作为一般规则,像 AMQ 这样的代理很少允许消费者检查消息计数等队列属性。

除非你能以某种方式从你的 node.js 代码中 leverage JMX ,最简单的方法是创建一个带有 client.disconnect() 的计时器作为回调并等待适合的时间量你的系统。每当消息被消费时,重置计时器。