Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

PHP + Rabbitmq. Как получить количество сообщений в очереди?

#php #rabbitmq


Как из php скрипта определить количество сообщений в очереди? Вот мой код:

channel();
$channel->basic_consume('sms_inbox', '', true, false, false, false, $callback);

    


Ответы

Ответ 1



Это костыль для решения этого вопроса. Как сделать вывод количества сообщений в очереди средствами php без функции exec() у меня так и не вышло $content = exec('rabbitmqctl list_queues|grep sms_inbox'); preg_match_all('/sms_inbox(.+)/', $content, $result, PREG_PATTERN_ORDER); $cnt = trim($result[1][0]);

Ответ 2



$queue = new AMQPQueue($channel); $queue->setName('sms_inbox'); $queue->setFlags(AMQP_DURABLE); echo $queue->declare() . PHP_EOL; // до 1.2.0 или с версии rabbitmq 1.2.0: echo $queue->declareQueue() . PHP_EOL; // с 1.2.0 Метод declare() кроме того, что объявляет очередь, возвращает количество сообщений в очереди. Return Values Returns the message count. С версии amqp 1.2.0 AMQPQueue::declare() deprecated и нужно использовать AMQPQueue::declareQueue().

Комментариев нет:

Отправить комментарий