[学习笔记] RabbitMQ的简单使用
程序员文章站
2022-06-17 21:38:23
安装依赖 生产者 消费者 运行 查看队列 ......
安装依赖
# composer.json { "require": { "php-amqplib/php-amqplib": ">=2.9.0" } }
> composer.phar install
生产者
# send.php <?php require_once __dir__ . '/vendor/autoload.php'; use phpamqplib\connection\amqpstreamconnection; use phpamqplib\message\amqpmessage; $connection = new amqpstreamconnection('localhost', 5672, 'guest', 'guest'); // 创建通道 $channel = $connection->channel(); // 创建队列 $channel->queue_declare('hello', false, false, false, false); $msg = new amqpmessage('hello world!'); // 通过默认的交换机发送消息到队列 (消息内容, 默认交换机, 路由键); $channel->basic_publish($msg, '', 'hello'); echo " [x] sent 'hello world!'\n"; $channel->close(); $connection->close();
消费者
# receive.php <?php require_once __dir__ . '/vendor/autoload.php'; use phpamqplib\connection\amqpstreamconnection; $connection = new amqpstreamconnection('localhost', 5672, 'guest', 'guest'); $channel = $connection->channel(); $channel->queue_declare('hello', false, false, false, false); echo " [*] waiting for messages. to exit press ctrl+c\n"; $callback = function ($msg) { echo ' [x] received ', $msg->body, "\n"; }; $channel->basic_consume('hello', '', false, true, false, false, $callback); while ($channel->is_consuming()) { $channel->wait(); } $channel->close(); $connection->close();
运行
# shell 1 php receive.php # shell 2 php send.php
查看队列
# linux sudo rabbitmqctl list_queues # windows rabbitmqctl.bat list_queues
推荐阅读
-
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
-
vuex 的简单使用
-
ASP.NET学习笔记(五)-全球化部署,网站发布方法,AJAX使用,水晶报表使用,DropDownList,CheckBox全选
-
mysql存储过程的简单使用教程
-
mysql存储过程的简单使用教程
-
使用简单的CSS3属性实现炫酷读者墙效果
-
Linux学习笔记(二):文件目录管理和VIM编辑器的使用
-
基于ECMAScript6即ECMAScript2015的javascriptclass类封装的简单使用实例讲解
-
LotusPhp笔记之:基于ObjectUtil组件的使用分析
-
vue公共事件总线eventBus的简单理解和使用