Получать сообщения из очереди RabbitMQ - PullRequest
7 голосов
/ 07 февраля 2010

Я хочу внедрить RabbitMQ в свое PHP-приложение и использую расширение php-amqp. Мой единственный вопрос заключается в следующем: как мне легко сделать запрос на возврат содержимого очереди в PHP?

php-amqp не позволяет мне сделать это. Если я ошибаюсь, пожалуйста, помогите мне здесь:)

Ответы [ 3 ]

2 голосов
/ 10 августа 2011

Если вам нужно знать, сколько сообщений в очереди, вы можете получить эту информацию, когда объявляете очередь, или если вы используете basic.get для получения одного сообщения. Обычно получатели сообщений будут использовать basic.consume и не будут знать, сколько сообщений ожидает.

2 голосов
/ 08 февраля 2010

Джеймс, не могли бы вы задать этот вопрос на rabbitmq-обсудить? Ваш вопрос касается того, что означает «запросить» очередь для получения сообщений. В RabbitMQ вы используете сообщения из очередей и выполняете фильтрацию, используя привязки очередей. Взгляните на это вступление - http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

Приветствия

Alexis RabbitMQ

0 голосов
/ 20 февраля 2016

Такой вопрос больше относится к типу данных очереди и общей концепции AMQP.

В AMQP (и в RabbitMQ, который является AMQP-совместимым брокером) очереди являются типичными очередями FIFO.Очередь - это не тот тип данных, который обычно используется для доступа к произвольным элементам, и RabbitMQ в настоящее время не предоставляет никакого способа обойти концепцию FIFO и разрешить такой вид доступа.По крайней мере, из коробки.Могут быть какие-то сторонние плагины, но я не знаю ни о каких подобных.И еще раз, это разрушит всю концепцию FIFO, и он просто станет новым повторением или чем-то еще, даже не говоря о влиянии на производительность (можно проверить сложность работы общих структур данных, даже эти вопросы и ответы на SO - Сколько временисложности различных структур данных? дает краткое представление, почему добавление произвольного доступа не является целью AMQP или любого AMQP-совместимого брокера, который заботится о производительности).

Большинство вопросов о произвольном доступе к очереди возникает, когда очередипоставлены в неверный контекст: это может быть случай, когда концепция очереди просто не соответствует текущей или желаемой архитектуре, и когда какое-то хранилище значений ключей или база данных лучше.

...