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定时执行之Timer用法示例
May 27 Python
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 Python
Python基础教程之利用期物处理并发
Mar 29 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
Python中shapefile转换geojson的示例
Jan 03 Python
python多线程并发让两个LED同时亮的方法
Feb 18 Python
python实现五子棋人机对战游戏
Mar 25 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
Django 创建/删除用户的示例代码
Jul 24 Python
关于numpy数组轴的使用详解
Dec 05 Python
Python文件操作函数用法实例详解
Dec 24 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 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 if 想到的些问题
2008/03/22 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
javascript 特殊字符串
2009/02/25 Javascript
js 学习笔记(三)
2009/12/29 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
Node.js实现文件上传
2016/07/05 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
微信小程序解除10个请求并发限制
2018/12/18 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
windows下python连接oracle数据库
2017/06/07 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
python计算二维矩形IOU实例
2020/01/18 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
大学学生个人总结
2015/02/15 职场文书
失恋33天观后感
2015/06/11 职场文书
单独二胎证明
2015/06/24 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python