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
答案 0 :(得分:0)
尝试在SUBSCRIBE框架中添加activemq.prefetchSize:1
标头。