Apollo activemq ack

时间:2013-02-18 07:53:14

标签: php activemq stomp apollo

Hy,我使用的是Apollo Activemq Broker和Stomp 我写了两个方法,一个用于将消息发送给代理,另一个用于从队列中读取消息 当我向borker发送一条消息然后我读它时,一切都很好,我可以阅读并确认消息,当我多次运行发送消息时我的问题出现了,我在队列中有很多消息,当我尝试每次只收到队列中的第一条消息时,读取​​并确认消息。 如果我运行循环“

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

一切正常,我可以阅读并确认队列中的所有消息。

更新:当从PHP接收到ack时,ActiveMQ不从队列中删除消息。 Ack返回true但消息仍在队列中。

更新:我的问题似乎是“prefetchSize”,默认为1000,我想将此设置为1,我使用stomp与代理进行交互,请给我一个提示我应该将该值从1000更改为1

1 个答案:

答案 0 :(得分:0)

尝试在SUBSCRIBE框架中添加activemq.prefetchSize:1标头。