Python队列RabbitMQ 使用方法实例记录


Posted in Python onAugust 05, 2019

本文实例讲述了Python队列RabbitMQ 使用方法。分享给大家供大家参考,具体如下:

目前的exchange的路由策略是:每个需要队列的服务独享一个队列(queue),消费者(consumer)采用ACK自动应答模式处理队列消息。

如果需要新增一个队列服务,需要做如下开发步骤:

1.创建队列,发送消息

<?php
$routingkey = 'key';
//设置你的连接
$conn_args = array('host' => 'localhost', 'port' => '5672', 'login' => 'guest', 'password' => 'guest');
$conn = new AMQPConnection($conn_args);
if ($conn->connect()) {
  echo "Established a connection to the broker \n";
} else {
  echo "Cannot connect to the broker \n ";
}
//你的消息
$message = json_encode(array('Hello World3!', 'php3', 'c++3:'));
//创建channel
$channel = new AMQPChannel($conn);
//创建exchange
$ex = new AMQPExchange($channel);
$ex->setName('exchange2'); //创建名字
$ex->setType(AMQP_EX_TYPE_DIRECT);
$ex->setFlags(AMQP_DURABLE);
echo "exchange2 status:" . $ex->declareExchange();
echo "\n";
for ($i = 0; $i < 100; $i++) {
  if ($routingkey == 'key2') {
    $routingkey = 'key';
  } else {
    $routingkey = 'key2';
  }
  $ex->publish($message, $routingkey);
}

这样就产生了50条消息,但是没有消费者,所以没有被消费

Python队列RabbitMQ 使用方法实例记录

2.创建消费者,消费信息

<?php
set_time_limit(0);
$e_name = 'exchange2'; //交换机名
$q_name = 'queue2'; //队列名
$k_route = 'key2'; //路由key 
//连接RabbitMQ
$conn_args = array('host' => '127.0.0.1', 'port' => '5672', 'login' => 'guest', 'password' => 'guest', 'vhost' => '/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
$channel = new AMQPChannel($conn);  
//创建交换机
$ex = new AMQPExchange($channel);
$ex->setName($e_name);
$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型
$ex->setFlags(AMQP_DURABLE); //持久化
echo "Exchange Status:" . $ex->declareExchange() . "\n";
//创建队列
$q = new AMQPQueue($channel);
$q->setName($q_name);
$q->setFlags(AMQP_DURABLE); //持久化 
//绑定交换机与队列,并指定路由键
echo 'Queue Bind: ' . $q->bind($e_name, $k_route) . "\n"; //阻塞模式接收消息
echo "Message:\n";
$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答 
$conn->disconnect();
/** * 消费回调函数 * 处理消息 */
function processMessage($envelope, $queue) {
  var_dump($envelope->getRoutingKey());
  $msg = $envelope->getBody();
  echo $msg . "\n"; //处理消息
}

运行之后

Python队列RabbitMQ 使用方法实例记录

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python合并文本文件示例
Feb 07 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
使用python实现链表操作
Jan 26 Python
Python中按键来获取指定的值
Mar 02 Python
Python 3 判断2个字典相同
Aug 06 Python
python实现身份证实名认证的方法实例
Nov 08 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
Python魔法方法 容器部方法详解
Jan 02 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 #Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 #Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 #Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 #Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 #Python
selenium2.0中常用的python函数汇总
Aug 05 #Python
Django中使用CORS实现跨域请求过程解析
Aug 05 #Python
You might like
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
PHP中使用curl入门教程
2015/07/02 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
python中函数默认值使用注意点详解
2016/06/01 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python检测网络延迟的代码
2018/05/15 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
python中使用np.delete()的实例方法
2021/02/01 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
研究生自荐信
2013/10/09 职场文书
班组安全员工作职责
2014/02/01 职场文书
学生生病请假条范文
2014/02/16 职场文书
电子专业求职信
2014/06/19 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js
python blinker 信号库
2022/05/04 Python