2013-02-18 2 views
0

안녕하세요, 저는 Apollo Activemq Broker와 Stomp를 사용합니다.
메시지를 브로커에 보내는 방법과 큐에서 메시지를 읽는 방법 두 가지를 썼습니다.
나는 borker에게 하나의 메시지를 보낸 다음 그것을 읽었을 때 모든 것이 정상이며 메시지를 읽고 인정할 수있다. 내 문제는 메시지를 여러 번 보내고 대기열에 많은 메시지가있을 때 나타난다. 큐에서 첫 번째 메시지 만받을 때마다 메시지를 읽고 확인하십시오. 내가 루프 "Apollo activemq ack

while ($con->HasFrame) { 
    $msg = $con->readFrame(); 
     $con->ack($msg); 
} 

모든 것이 괜찮 실행하면 또한, 내가 읽고 큐에서 모든 메시지를 확인 할 수

UPDATE :.는 ACK가에서 수신 될 때의 ActiveMQ는 큐에서 메시지를 제거하지 PHP.Ack는 true를 반환하지만 메시지는 여전히 대기열에 있습니다.

업데이트 : 내 문제는 "prefetchSize"가 기본값 인 1000 인 것처럼 보입니다.이 값을 1로 설정하려면 stomp를 사용하여 브로커와 상호 작용합니다. , 그 값을 1000에서 1로 변경해야한다는 힌트를주세요.

+0

질문을 명확히해야 할 필요가 있다고 생각합니다. 기대하지 않았던 것을 당신은 무엇을보고 있습니까? –

답변

0

SUBSCRIBE 프레임에 activemq.prefetchSize:1 헤더를 추가하십시오.