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 set集合类型操作总结
Nov 07 Python
Python文件读取的3种方法及路径转义
Jun 21 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
Python对象属性自动更新操作示例
Jun 15 Python
python实现汽车管理系统
Nov 30 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
django框架forms组件用法实例详解
Dec 10 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
javascript Demo模态窗口
2009/12/06 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
python框架django基础指南
2016/09/08 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
授权委托书(完整版)
2014/09/10 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
家长会欢迎词
2015/01/23 职场文书
《角的度量》教学反思
2016/02/18 职场文书