Spring boot rabbitmq queue count? -


i trying count of number of messages on rabbit queue , purge queue in test. looking around seems suggest need use rabbitadmin counts unsure how autowire test? ideas?

@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; } 

test class:

 @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 declareok = admin.getrabbittemplate().execute(new channelcallback<amqp.queue.declareok>() {         public amqp.queue.declareok doinrabbit(channel channel) throws exception {             return channel.queuedeclarepassive(name);         }     });     return declareok.getmessagecount(); }  } 

if you're using following dependency in project...

<dependency>     <groupid>org.springframework.boot</groupid>     <artifactid>spring-boot-starter-amqp</artifactid> </dependency> 

...then can leverage amqpadmin bean that's provided spring boot autoconfiguration within tests.

example:

@runwith(springrunner.class) @springboottest public class rabbitmqtests {      @autowired     private amqpadmin amqpadmin;      @test     public void purgequeue() throws exception {         integer count = (integer) amqpadmin.getqueueproperties("publish").get("queue_message_count");         amqpadmin.purgequeue("publish", true);     }  } 

the example above shows how can message count particular queue.


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -