5
JMS 대기열이 있습니다. 메시지를받은 후 DB에 저장해야합니다. 그런 다음 일부 조건에 따라 고정 된 속도로 제 3 자 서비스에이 메시지를 보내려면 제한을 사용합니다.Apache Camel. 스로틀 루트 부분
from("jms:queue")
.bean(persistingListener)
.choice()
.when(some condition ..)
.throttle(5)
.asyncDelayed()
.bean(thirdPartyServiceClient)
.endChoice();
그러나, 전체 경로가 스로틀 도착하지 타사 서비스 클라이언트와 관련된 부분 :
나는 다음과 같은 경로를 가지고있다. 큐에 100 개의 메시지를 넣으면 처음 5 개만 읽혀집니다. 따라서이 경우 타사 서비스가 필요하지 않은 메시지 처리가 지연됩니다.
제 3 자 서비스와 관련된 부분에서만 조절 방법에 대한 아이디어가 있습니까?
미리 감사드립니다.
기회가 당신의 상태가 항상 참임을 있습니까? 시간 창도 지정해야합니다. – alobodzk
@alobodzk, 음, 그런 기회는 없으며 중요하지 않다고 생각합니다. 기본적으로 스로틀 시간 창은 1 초로 설정됩니다. – StasKolodyuk
JMS 엔드 포인트에서 asyncConsumer = true를 설정하십시오. 해당 설명서를 참조하십시오. http://camel.apache.org/jms –