背景
子项目中使用了rabbitmq,但是只用了发送到队列的功能,没有监听,所以当项目启动时,并未自动创建队列
通过GPT,找到了如下解决方法,测试可用。文章来源:https://www.toymoban.com/news/detail-856279.html
思路是:配置队列信息时,手动调用连接rabbitmq一次,就会自动将队列创建好。
文章来源地址https://www.toymoban.com/news/detail-856279.html
//以下代码添加到rabbitmq配置类中即可
@Value("${rabbitmq.registerQueueName:DefaultQueue}")
private String registerQueueName;
@Value("${rabbitmq.registerExchangeName:DefaultExchange}")
private String registerExchangeName;
@Resource
private ConnectionFactory connectionFactory;
/**
* 队列
*
* @return
*/
@Bean
public Queue imageQueue() {
return new Queue(registerQueueName, true);
}
/**
* 交换机
*
* @return
*/
@Bean
public FanoutExchange imageExchange() {
return new FanoutExchange(registerExchangeName, true, false);
}
/**
* 绑定交换机和队列
*
* @return
*/
@Bean
public Binding bindingExchange() {
return BindingBuilder.bind(imageQueue()).to(imageExchange());
}
//关键代码,手动连接rabbitmq一次,自动创建队列
@Bean
public ApplicationRunner runner() {
return args -> connectionFactory.createConnection().close();
}
到了这里,关于rabbitmq 之 无法自动创建队列的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!