我在代理中运行了一些持久队列。在某些时候,我想检查队列中是否有任何数据,如果该队列为空,则关闭或终止该队列。
我正在使用java来编码发件人和收件人。 我知道经纪人中存在哪些队列。
建议你这样做。
答案 0 :(得分:1)
您可以检查GetResponse
对象值,以获取队列中是否包含某些内容的信息。如果GetResponse
为空,则可以删除队列,将队列视为空。
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection con = factory.newConnection();
rabbitChannel = con.createChannel();
GetResponse response = rabbitChannel.basicGet(QUEUE_NAME, BOOLEAN_NOACK);
if(response != null){
String body = new String(responseQuestion.getBody());
// do whatever you want to do here
}
else{
rabbitChannel.queueDelete(QUEUE_NAME);
}
OR
使用此queueDelete(java.lang.String queue, boolean ifUnused, boolean ifEmpty)
这将根据您在参数&中提供的empty
自动检查队列是not_in_use
还是boolean
。相应地删除它。