php消息队列rabbitmq

在PHP中使用RabbitMQ,你可以使用php-amqplib库,这是一个纯PHP实现的RabbitMQ客户端。以下是一个简单的生产者和消费者示例。

首先,确保你已经安装了php-amqplib,可以通过Composer进行安装:

bash 复制代码
composer require php-amqplib/php-amqplib

生产者代码示例:

php 复制代码
php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

// 连接到RabbitMQ服务器
$connection = new AMQPStreamConnection('localhost', 5672, 'user', 'password', 'virtual_host');
$channel = $connection->channel();

// 声明队列
$queue = 'hello';
$channel->queue_declare($queue, false, true, false, false);

// 发送消息
$msg = new AMQPMessage('Hello World!');
$channel->basic_publish($msg, '', $queue);

echo " [x] Sent 'Hello World!'\n";

// 关闭连接
$channel->close();
$connection->close();
?>

消费者代码示例:

php 复制代码
php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;

// 连接到RabbitMQ服务器
$connection = new AMQPStreamConnection('localhost', 5672, 'user', 'password', 'virtual_host');
$channel = $connection->channel();

// 声明队列
$queue = 'hello';
$channel->queue_declare($queue, false, true, false, false);

echo " [*] Waiting for messages. To exit press CTRL+C\n";

// 回调函数,当接收到消息时会被调用
$callback = function ($msg) {
    echo " [x] Received ", $msg->body, "\n";
};

// 开始消费消息
$channel->basic_consume($queue, '', false, true, false, false, $callback);

// 等待并接收消息直到程序停止
while ($channel->is_consuming()) {
    $channel->wait();
}

// 关闭连接
$channel->close();
$connection->close();
?>

确保替换连接参数(例如主机名、用户、密码和虚拟主机)以连接到你的RabbitMQ服务器。运行这些脚本,生产者脚本将发送消息到队列,消费者脚本将从队列中接收并处理消息。

相关推荐
山沐与山几秒前
【设计模式】Python观察者模式:用RabbitMQ+Celery实现事件驱动
python·观察者模式·设计模式·rabbitmq
TheNextByte1几秒前
如何将Android中的照片传输到Windows 11/10
android·windows
lifewange8 分钟前
Linux 系统性能监控核心命令(全覆盖 CPU、内存、磁盘、网络、负载)
linux·网络·php
2501_916008899 分钟前
iPhone 耗电异常检测的思路,从系统电池统计、克魔(KeyMob)、Instruments等工具出发
android·ios·小程序·uni-app·cocoa·iphone·webview
撩得Android一次心动10 分钟前
Android 四大组件——ContentProvider(内容提供者)
android·内容提供者·android 四大组件
BingoGo11 分钟前
PHP True Async 最近进展以及背后的争议
后端·php
2501_9159214311 分钟前
App Store 上架流程中常见的关键问题
android·ios·小程序·https·uni-app·iphone·webview
nono牛13 分钟前
实战项目:设计一个智能温控服务
android·前端·网络·算法
Wang's Blog14 分钟前
RabbitMQ: 构建高可靠消息系统之定时重发、消费重试与死信告警全解析
分布式·rabbitmq
JaguarJack19 分钟前
PHP True Async 最近进展以及背后的争议
后端·php