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中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
Python编程中归并排序算法的实现步骤详解
May 04 Python
Django数据库表反向生成实例解析
Feb 06 Python
django 删除数据库表后重新同步的方法
May 27 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
python线程的几种创建方式详解
Aug 29 Python
Django中的session用法详解
Mar 09 Python
Python实现疫情通定时自动填写功能(附代码)
May 27 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
php动态绑定变量的用法
2015/06/16 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
window.open的功能全解析
2006/10/10 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
Python异常处理操作实例详解
2018/05/10 Python
详解Python用户登录接口的方法
2019/04/17 Python
python实现最小二乘法线性拟合
2019/07/19 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
python绘制封闭多边形教程
2020/02/18 Python
django rest framework使用django-filter用法
2020/07/15 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
优秀教师主要事迹
2014/02/01 职场文书
股东合作协议书
2014/09/12 职场文书
党员倡议书
2015/01/19 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
人民调解协议书
2016/03/21 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android