0

嗨,我使用 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。

4

1 回答 1

0

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

于 2013-12-23T09:41:14.157 回答