如何从队列中只读取一次消息

时间:2016-07-25 20:25:13

标签: php activemq stomp php-5.5

我正在使用ActiveMQ来存储消息队列 我正在使用PECL Stomp扩展来连接它。 我成功地发布到队列中,并成功地从中读取 如何配置队列以在消耗消息后删除消息? 在我的听众中,我使用

$c = new Stomp($url);
$c->subscribe('/queue/something');
echo $c->readFrame();

1 个答案:

答案 0 :(得分:1)

您必须确认消息才能将其从队列中“删除”。您可以使用$stomp->ack($messageID)

执行此操作

如果您不想明确确认收据,可以将$stomp->subscribe ack的标题设置为auto。这将使服务器自动确认消息并假设它已正确传送。

$stomp->subscribe('/queue/something', array('ack' => 'auto'));

参考文献:
http://php.net/manual/en/stomp.ack.php
http://php.net/manual/en/stomp.subscribe.php
https://stomp.github.io/stomp-specification-1.1.html#SUBSCRIBE