以下是一个简化的示例,展示了如何在ThinkPHP6中使用RabbitMQ的生产者和消费者。
// 生产者 - 发送消息到RabbitMQ
function sendMessageToRabbitMQ($message) {
// 引入RabbitMQ类
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
// 创建连接
$connection = new AMQPStreamConnection('localhost', 5672, 'user', 'password', 'vhost');
$channel = $connection->channel();
// 声明队列
$channel->queue_declare('hello', false, false, false, false);
// 创建消息
$msg = new AMQPMessage($message);
// 发布消息到队列中
$channel->basic_publish($msg, '', 'hello');
// 关闭连接
$channel->close();
$connection->close();
}
// 消费者 - 从RabbitMQ中消费消息
function consumeMessageFromRabbitMQ() {
// 引入RabbitMQ类
use PhpAmqpLib\Connection\AMQPStreamConnection;
// 创建连接
$connection = new AMQPStreamConnection('localhost', 5672, 'user', 'password', 'vhost');
$channel = $connection->channel();
// 声明队列
$channel->queue_declare('hello', false, false, false, false);
// 创建回调函数
$callback = function ($msg) {
echo 'Received ', $msg->body, "\n";
};
// 消费消息
$channel->basic_consume('hello', '', false, true, false, false, $callback);
// 循环等待并接收消息
while ($channel->is_consuming()) {
$channel->wait();
}
// 关闭连接
$channel->close();
$connection->close();
}
在这个示例中,我们定义了两个函数:sendMessageToRabbitMQ用于发送消息到RabbitMQ,而consumeMessageFromRabbitMQ用于从RabbitMQ中消费消息。这两个函数都使用了PhpAmqpLib库,这是PHP中用于与RabbitMQ交互的常用库。
请注意,为了保持简洁,这里没有包含异常处理和持久化队列、消息等功能,实际应用中需要根据具体需求进行相应配置。