赞
踩
RabbitMQ懒加载模式, 需要配置消费者监听才会创建
@RabbitListener(queues = "test.queue")
另外一种方式(若Mq中无相应名称的队列,会自动创建Queue),改为如下
@RabbitListener(queuesToDeclare = { @Queue(value = "test.queue",durable = "true", autoDelete = "false") })
@Bean
public RabbitAdmin rabbitAdmin(ConnectionFactory defaultConnectionFactory){
return new RabbitAdmin(defaultConnectionFactory);
}
使用rabbitAdmin.declareQueue方法
@Bean
public Queue queueGps() {
// durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
// exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
// autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
//一般设置一下队列的持久化就好,其余两个就是默认false
Queue queue = new Queue( "test.queue", true);
rabbitAdmin.declareQueue(queue);
return queue;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。