我用的是Apollo Activemq Broker和Stomp。
我编写了两个方法,一个用于将消息发送到代理,另一个用于从队列中读取消息。
当我向borker发送一条消息,然后读取它时,一切正常,我可以读取并确认该消息,当我多次运行发送消息并且队列中有许多消息时,我的问题就出现了,当我每次只从队列中接收到第一条消息时,我试图读取并确认该消息。另外,如果我运行一个循环“
while ($con->HasFrame) {
$msg = $con->readFrame();
$con->ack($msg);
}一切正常,我可以读取和确认队列中的所有消息。
更新:当接收到来自ActiveMQ的ack时,PHP不从队列中删除消息。Ack返回true,但消息仍在队列中。
更新:我的问题似乎是"prefetchSize“,它的默认值是1000,我想将其设置为1,我使用stomp与代理交互,请给我一个提示,我应该将该值从1000更改为1。
发布于 2013-12-23 17:41:14
尝试在SUBSCRIBE帧中添加activemq.prefetchSize:1标头。
https://stackoverflow.com/questions/14931641
复制相似问题