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的Flask框架开发环境的一些技巧总结
Jul 12 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
Python实现批量检测HTTP服务的状态
Oct 27 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
浅析Python 序列化与反序列化
Aug 05 Python
用Python实现Newton插值法
Apr 17 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&amp;&amp;mysql)六
2006/10/09 PHP
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
33道php常见面试题及答案
2015/07/06 PHP
php输出图像的方法实例分析
2017/02/16 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
服务器安全设置的几个注册表设置
2007/07/28 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
Python实现二叉堆
2016/02/03 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
高中运动会入场词
2014/02/14 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
2014党员批评和自我批评思想汇报
2014/09/21 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书