2016-11-06 3 views
0

우리는 특정 속도 1ms/2 초로 청취자가 rabbitmq에서 메시지를 읽으려고했습니다. 우리는 지금까지 토끼 mq로 그러한 유틸리티를 찾지 못했습니다. 그래서 DB와 함께 이것을 수행하는 생각, 즉 리스너는 메시지를 읽고이를 DB에 저장하고 나중에 스케줄러가 DB로부터 원하는 비율로 처리합니다. 이 작업을 수행하는 더 좋은 방법이 있다면 제안하십시오. 우리는 Spring에서 애플리케이션을 개발 중입니다. 미리 감사드립니다. 당신이 작업 스케줄러 또는 오히려 봄 @Async 방법과 같은 더 정교한 뭔가를 사용할 수 있습니다 물론지정된 속도로 rabbitmq에서 메시지 처리

답변

0

당신은 청취자와 함께 할 수는 없지만, 당신이 RabbitTemplate와 함께 할 수 있습니다 ...

@SpringBootApplication 
public class So40446967Application { 

    public static void main(String[] args) throws Exception { 
     ConfigurableApplicationContext context = SpringApplication.run(So40446967Application.class, args); 
     RabbitAdmin admin = context.getBean(RabbitAdmin.class); 
     AnonymousQueue queue = new AnonymousQueue(); 
     admin.declareQueue(queue); 
     RabbitTemplate template = context.getBean(RabbitTemplate.class); 
     for (int i = 0; i < 10; i++) { 
      template.convertAndSend(queue.getName(), "foo" + i); 
     } 
     String out = (String) template.receiveAndConvert(queue.getName()); 
     while (out != null) { 
      System.out.println(new Date() + " " + out); 
      Thread.sleep(2000); 
      out = (String) template.receiveAndConvert(queue.getName()); 
     } 
     context.close(); 
    } 

} 

잠자는 것보다.