如何从队列中只读取一次消息
How to read a message only once from a queue
我正在使用 ActiveMQ 存储消息队列。
我正在使用 PECL Stomp 扩展来连接它。
我正在成功发布到队列,并成功从中读取。
如何配置队列在消费后删除消息?
在我的听众中,我使用
$c = new Stomp($url);
$c->subscribe('/queue/something');
echo $c->readFrame();
您必须确认消息的使用才能从 queue 获取消息 "deleted"。您可以使用 $stomp->ack($messageID)
.
如果您不想明确确认收到,您可以将 ack
的 $stomp->subscribe
的 headers 设置为 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
我正在使用 ActiveMQ 存储消息队列。
我正在使用 PECL Stomp 扩展来连接它。
我正在成功发布到队列,并成功从中读取。
如何配置队列在消费后删除消息?
在我的听众中,我使用
$c = new Stomp($url);
$c->subscribe('/queue/something');
echo $c->readFrame();
您必须确认消息的使用才能从 queue 获取消息 "deleted"。您可以使用 $stomp->ack($messageID)
.
如果您不想明确确认收到,您可以将 ack
的 $stomp->subscribe
的 headers 设置为 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