PHP获取RabbitMQ队列内消息数量

发布时间:2017年11月08日 // 分类:代码 // 2 条评论

程序中需要获取RabbitMQ当前队列中消息数量,网上相关的文档都是五六年前的就文档,所描述的AMQPQueue类已经不存在。最终在SDK中翻到蛛丝马迹$message_count。

/php-amqplib/PhPAmqpLib/Channel/AMQPChannel.php Line 645
/**
 * Confirms a queue definition
 *
 * @param AMQPReader $reader
 * @return string[]
 */
protected function queue_declare_ok($reader)
{
    $queue = $reader->read_shortstr();
    $message_count = $reader->read_long();
    $consumer_count = $reader->read_long();

    return array($queue, $message_count, $consumer_count);
}

遂找到解决方案:

function getQueueMessageCount($queue_name){
    $conn = new AMQPStreamConnection(连接配置);
    $channel = $conn->channel();
    
    // queue_declare第二个参数$passive需要为true
    $declare_info=$channel->queue_declare($queue_name,true);

    $message_count=$declare_info[1];
    return $message_count;
}

本文固定链接
https://www.ywlib.com/archives/123.html

标签
php

已有 2 条 关于 " PHP获取RabbitMQ队列内消息数量 "的评论.

  1. kincae

    你好,找了很多文档就你的这篇解决了我的问题,可以留个联系方式吗

    1. 关于页面里有我的邮箱

添加新评论 »