小编hel*_*766的帖子

Spring启动rabbitmq队列计数?

我试图计算兔子队列上的消息数量,然后在测试中清除队列。环顾四周,似乎表明我需要使用 RabbitAdmin 来获取计数,但不确定如何将其自动连接到我的测试中?有任何想法吗?

@Configuration
public class MyConfig {

@Value("${queue.producer.name}")
private String queueName;


@Bean
public Jackson2JsonMessageConverter jsonMessageConverter(){
    Jackson2JsonMessageConverter con= new Jackson2JsonMessageConverter();
    return con;
}

@Autowired
private ConnectionFactory rabbitConnectionFactory;

@Bean
public Queue queue() {
    return new Queue(queueName, true);
}

@Bean
public RabbitTemplate rabbitTemplate() {
    RabbitTemplate r = new RabbitTemplate(rabbitConnectionFactory);
    r.setMessageConverter(jsonMessageConverter());
    r.setConnectionFactory(rabbitConnectionFactory);
    return r;
}
Run Code Online (Sandbox Code Playgroud)

测试类:

 @RunWith(SpringRunner.class)
@SpringBootTest
public class TestIT {


@Resource
private RabbitAdmin admin;

@Test
public void testQueue() throws IOException, InterruptedException{

    System.out.println(getQueueCount("publish"));

    admin.purgeQueue("publish",true);


}

protected int getQueueCount(final String name) {
    AMQP.Queue.DeclareOk …
Run Code Online (Sandbox Code Playgroud)

rabbitmq spring-boot

4
推荐指数
1
解决办法
5276
查看次数

Rabbit监听器注释从yaml获取队列名称

我目前将我的兔子监听器注释设置为:

@RabbitListener(queues ="my-queue")

是不是可以从我的yaml文件中提取队列名称.我想这样做的原因是,我可以通过更改yaml文件中的队列名称将队列更改为测试队列以进行集成测试.看来注释必须接受一个常量字符串,有没有办法围绕这个?谢谢,

rabbitmq spring-boot spring-rabbitmq

3
推荐指数
1
解决办法
2730
查看次数

标签 统计

rabbitmq ×2

spring-boot ×2

spring-rabbitmq ×1