程序中需要获取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;
}
转载请注明出处
《PHP获取RabbitMQ队列内消息数量》https://www.ywlib.com/archives/123.html (from 一闻自习室)
本文固定链接
https://www.ywlib.com/archives/123.html
标签
php
你好,找了很多文档就你的这篇解决了我的问题,可以留个联系方式吗
关于页面里有我的邮箱