gpt4 book ai didi

php - 如何使用 PHP 从 rabbitMq 队列中获取单个消息?

转载 作者:可可西里 更新时间:2023-11-01 13:22:32 24 4
gpt4 key购买 nike

我只需要从一个队列中捕获一条实际消息。兔子试图捕获他们所有人。简化代码如下:

private function getSingleTask(){
$connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');

$channel = $connection->channel();
$channel->queue_declare('hello', false, false, false, false);

$callback = function($msg) {
return $msg->body;
};

$channel->basic_qos(null, 1, null);
$channel->basic_consume('helloQueue', '', false, true, false, false, $callback);
$channel->wait(null, true, 5);
}

我将很少的消息扔到队列中,但是一旦我执行了下面的部分代码,它就会从队列中获取所有消息,并且 $callbacks 只是第一个。

最佳答案

解决方法很简单...

require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPConnection;

$connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$result = ($channel->basic_get('helloQueue', true, null)->body);

顺便说一句,“basic_get”方法的第二个参数设置消息确认,因此通过适当的服务器设置,它可以告诉您队列是否有消息,而无需获取消息。

关于php - 如何使用 PHP 从 rabbitMq 队列中获取单个消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32747045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com