Я использую ActiveMQ для хранения очереди сообщений.
Я использую расширение PECL Stomp для подключения к нему.
Я успешно публикую в очередь и успешно читаю.
Как настроить очередь для удаления сообщения после его использования?
В моем слушателе я использую
$c = new Stomp($url);
$c->subscribe('/queue/something');
echo $c->readFrame();
Вы должны подтвердить использование сообщения, чтобы «удалить» его из очереди. Вы можете сделать это с $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
Других решений пока нет …