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中mechanize库的简单使用示例
Jan 10 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Python学习笔记整理3之输入输出、python eval函数
Dec 14 Python
用Python解决计数原理问题的方法
Aug 04 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
Python3实现腾讯云OCR识别
Nov 27 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
Python中正则表达式的用法总结
Feb 22 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
django使用graphql的实例
Sep 02 Python
Python类的继承super相关原理解析
Oct 22 Python
Python办公自动化PPT批量转换操作
Sep 15 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
YB217、YB235、YB400浅听
2021/03/02 无线电
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
js实现双色球效果
2020/08/02 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
Python中__call__用法实例
2014/08/29 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
python实现两个文件合并功能
2018/04/01 Python
python 自定义对象的打印方法
2019/01/12 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
研究生自我鉴定范文
2013/10/30 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
明星员工获奖感言
2014/08/14 职场文书
天坛导游词
2015/02/02 职场文书
慰问信范文
2015/02/14 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
django中websocket的具体使用
2022/01/22 Python
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL
TypeScript 内置高级类型编程示例
2022/09/23 Javascript