0
DefaultMessageListenerContainer에서 폴링 빈도 OOTB를 변경할 수 있습니까? 그렇다면 동적 구성입니까?스프링 DMLC 폴러 주파수 변경
DefaultMessageListenerContainer에서 폴링 빈도 OOTB를 변경할 수 있습니까? 그렇다면 동적 구성입니까?스프링 DMLC 폴러 주파수 변경
receiveTimeout
속성을 참조하십시오. - 메시지가 도착할 때까지 최대 스레드 블록입니다. 예, 컨테이너를 시작한 후에 변경할 수 있지만 클라이언트 라이브러리가 스레드를 릴리스 할 때까지 적용되지 않습니다.
기본값은 5 초입니다. 메시지가 없으면 컨테이너가 즉시 반복되어 다시 수신됩니다.
값을 너무 높게 설정하면 컨테이너가 stop()
호출에 응답하지 않게됩니다.
나는 메시지가 계속 들어오는 상황을 언급하고있다. 이 경우 receiveTimeout은 유용하지 않을 것이라고 생각합니다. 아이디어는 DMLC가 메시지를 소비하는 속도를 줄이는 것입니다. 호출간에 Thread.sleep과 같은 것. – user2599052
그렇다면 컨테이너가 메시지 기반이므로 메시지가 도착할 때 배달되고 해당 의미로 폴링되지는 않습니다. 컨테이너는 클라이언트 라이브러리에서 계속 메시지를 수신합니다. 요청에 따라 메시지를 "끌어 오기"원한다면 대신'JmsTemplate'' receive' 메소드를 사용하십시오. –
의도는 메시지가 소비되는 속도를 "제어"하는 것입니다. 예를 들어 다양한 청취자 중 동적으로 부하 분산을 수행하려는 경우 (청취자가 클러스터의 노드에 속한다고 가정) – user2599052