Spring AMQP 和队列中的消息

Spring AMQP and messages in queue

在一个Spring AMQP项目中,我想实时获取RabbitMQ中某个队列中的消息数量(以根据该消息数量做出决定)(我不能使用管理插件)。 基本配置是这样的:

@Bean(name="managementServerHandler")
    public ManagementServerHandler managementServerHandler(){
        return new ManagementServerHandler();
    }
    @Bean 
    public MessageListenerAdapter broadcastManagementServerHandler() {
        return new MessageListenerAdapter(managementServerHandler(), "handleMessage");
    }
    @Bean(name="broadcastManagementMessageListenerContainer") 
    public SimpleMessageListenerContainer broadcastManagementMessageListenerContainer() 
    {
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(_connectionFactory());
        container.setQueueNames( REQUEST_MANAGEMENT_QUEUE );
        container.setMessageListener(broadcastManagementServerHandler());
        container.setAcknowledgeMode(AcknowledgeMode.AUTO);
        container.setAutoDeclare(true);
        container.setAutoStartup(true);
        container.setConcurrentConsumers(1);
        container.setRabbitAdmin((RabbitAdmin)_amqpAdmin());
        container.setPrefetchCount(50);

        container.setDeclarationRetries(3);
        container.setMissingQueuesFatal(true);
        container.setFailedDeclarationRetryInterval(1000);
        container.setRecoveryInterval(400);

        return container;
    }

其中 "ManagementServerHandler" 只是:

 public class ManagementServerHandler implements ServletContextAware, MessageListener
    {
     @Override
        public void onMessage(Message msg) 
        {....}
}

我需要在 onMessage 方法中获取排队消息的数量,但找不到执行此操作的方法。 我问了这个问题,但我不知道如何获取AMQP频道:

RabbitMQ and queue data

谢谢!

使用RabbitAdmin.getQueueProperties(queue)

/**
 * Returns 3 properties {@link #QUEUE_NAME}, {@link #QUEUE_MESSAGE_COUNT},
 * {@link #QUEUE_CONSUMER_COUNT}, or null if the queue doesn't exist.
 */
@Override
public Properties getQueueProperties(final String queueName) {