首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php-amqplib (RabbitMQ)中获取队列中的所有消息?

如何在php-amqplib (RabbitMQ)中获取队列中的所有消息?
EN

Stack Overflow用户
提问于 2017-03-30 21:59:54
回答 2查看 3.3K关注 0票数 0

目前,我正在使用https://github.com/php-amqplib/php-amqplib,并且我已经在这个存储库中阅读了很多示例,但是我仍然不明白如何从队列中获取所有消息?

我只需要接收一些消息,按值对它们进行分组,然后执行一个操作。

有没有可能使用RabbitMQ?

我如何在php中实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2017-07-10 18:52:11

代码语言:javascript
复制
<?php

use PhpAmqpLib\Connection\AMQPStreamConnection;

$connection = new AMQPStreamConnection('rabbitmq', 5672, 'guest', 'guest');
$channel = $connection->channel();
$queueName = 'task_queue';
$channel->queue_declare($queueName, false, true, false, false);
$result = $channel->basic_get($queueName);

var_dump($result);

$channel->close();
$connection->close();
票数 6
EN

Stack Overflow用户

发布于 2017-03-31 10:37:00

您无法通过调用单个方法获取所有当前可用的消息。

最接近的解决方案是使用basic_consume方法。

例如:

代码语言:javascript
复制
function process_message($message)
{
    echo "Received message '" . $message->body . "'\n";

    /** Do your grouping here **/

}

$channel->basic_consume($queue, '', false, false, false, false, 'process_message');

// Loop as long as the channel has callbacks registered
while (count($channel->callbacks)) {
    $channel->wait();
}

您可以查看official RabbitMQ PHP tutorialdemo from php-amqplib

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43120125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档