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中函数总结之装饰器闭包详解
Jun 12 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
python简单贪吃蛇开发
Jan 28 Python
在Python中表示一个对象的方法
Jun 25 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
解决python3 安装不了PIL的问题
Aug 16 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php 常用算法和时间复杂度
2013/07/01 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
基于Jquery的简单图片切换效果
2011/01/06 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
python中比较两个列表的实例方法
2019/07/04 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
药剂学专业应届生自荐信
2013/09/29 职场文书
学生会离职感言
2014/02/11 职场文书
思想品德评语大全
2014/12/31 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫