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程序中自定义异常的方法
Oct 16 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
python实现画一颗树和一片森林
Jun 25 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
python Tensor和Array对比分析
Jan 08 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 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字符串的连接的简单实例
2013/12/30 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
vue 解决computed修改data数据的问题
2019/11/06 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
Python查询IP地址归属完整代码
2017/06/21 Python
Python玩转Excel的读写改实例
2019/02/22 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
高中物理教学反思
2014/02/08 职场文书
个人安全生产承诺书
2014/05/22 职场文书
街道务虚会发言材料
2014/10/20 职场文书
2014年食堂工作总结
2014/11/20 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
单位收入证明范本
2015/06/18 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android