2016-08-27 2 views
0

교환기에서 특정 이벤트에 대한 rabbitmq 소비자를 분리해야 대기열의 메시지 소비를 중단하고 동일한 소비자를 다시 메시지를 교환하고 시작하십시오. 나는 Spring-RabbitMQ 1.6을 사용하고있다.교환기에 rabbitmq 소비자 연결 해제 및 다시 연결

지금까지 인터넷에서 몇 페이지를 읽었습니다. http://www.programcreek.com/java-api-examples/index.php?api=org.springframework.amqp.rabbit.core.RabbitAdmin

http://docs.spring.io/spring-amqp/docs/1.6.0.RC1/reference/htmlsingle/#idle-containers 등이 있지만 작동 방식을 정확히 이해할 수 없습니다.

답변

1

container.stop()을 호출하여 소비자를 중지 할 수 있습니다. start()가 다시 시작됩니다.

+0

확인. 하지만 컨테이너에 액세스하는 방법 ?? 내 처분 "RabbitListenerEndpointRegistry"에서이 클래스가 필요 하겠지만 액세스 할 수있는 방법을 찾지 못했습니다. 나에게 접근 할 수있는 RabbitAdmin과 RabbitTemplate 빈을 가지고있다. –

+0

일반적인 Spring 기술 (생성자 arg 또는 속성,'@ Autowire','context.getBean()'등)을 사용하여 레지스트리에 대한 참조를 얻을 수 있고 중지/시작 할 수 있습니다. 컨테이너) 또는'@ RabbitListener''id'를 사용하여 레지스트리에서 개별 컨테이너를 가져 와서 중지하거나 시작할 수 있습니다. [해당 문서] (http://docs.spring.io/spring-amqp//reference/html/_reference.html#_container_management)를 참조하십시오. –

+0

입력 해 주셔서 감사합니다. 나는 rabbitmq 컨텍스트 xml을 약간 변경했으며 Collection 빈을 통해 모든 리스너에 대한 참조를 얻었다. –