Как прочитать сообщение только один раз из очереди

Я использую ActiveMQ для хранения очереди сообщений.
Я использую расширение PECL Stomp для подключения к нему.
Я успешно публикую в очередь и успешно читаю.
Как настроить очередь для удаления сообщения после его использования?
В моем слушателе я использую

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

0

Решение

Вы должны подтвердить использование сообщения, чтобы «удалить» его из очереди. Вы можете сделать это с $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

1

Другие решения

Других решений пока нет …