python中RabbitMQ的使用(路由键模糊匹配)
路由键模糊匹配
使用正则表达式进行匹配。其中“#”表示所有、全部的意思;“*”只匹配到一个词。
匹配规则:
路由键:routings = [ 'happy.work', 'happy.life' , 'happy.work.teacher', 'sad.work', 'sad.life', 'sad.work.teacher' ]
"#":匹配所有的路由键
"happy.#":匹配 'happy.work', 'happy.life' , 'happy.work.teacher'
"work.#":无匹配
“happy.*”:匹配 'happy.work', 'happy.life'
"*.work":匹配 'happy.work', 'sad.work'
"*.work.#":匹配 'happy.work', 'happy.work.teacher', 'sad.work', 'sad.work.teacher'
示例代码:
send4.py:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import pika 4 5 hostname = '192.168.1.133' 6 parameters = pika.ConnectionParameters(hostname) 7 connection = pika.BlockingConnection(parameters) 8 9 # 创建通道 10 channel = connection.channel() 11 # 定义交换机,设置类型为topic 12 channel.exchange_declare(exchange='change_top', type='topic') 13 14 # 定义路由键 15 routings = ['happy.work', 'happy.life', 'sad.work', 'sad.life'] 16 17 # 将消息依次发送到交换机,并设定路由键 18 for routing in routings: 19 message = '%s message.' % routing 20 channel.basic_publish(exchange='change_top', routing_key=routing, body=message) 21 print message 22 23 connection.close()
receive4.py:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import pika 4 import sys 5 6 hostname = '192.168.1.133' 7 parameters = pika.ConnectionParameters(hostname) 8 connection = pika.BlockingConnection(parameters) 9 10 # 创建通道 11 channel = connection.channel() 12 # 定义交换机,设置类型为topic 13 channel.exchange_declare(exchange='change_top', type='topic') 14 15 # 从命令行获取路由参数,如果没有,则报错退出 16 routings = sys.argv[1:] 17 if not routings: 18 print >> sys.stderr, "Usage: %s [routing_key]..." % (sys.argv[0],) 19 exit() 20 21 # 生成临时队列,并绑定到交换机上,设置路由键 22 result = channel.queue_declare(exclusive=True) 23 queue_name = result.method.queue 24 for routing in routings: 25 channel.queue_bind(exchange='change_top', queue=queue_name, routing_key=routing) 26 27 28 def callback(ch, method, properties, body): 29 print " [x] Received %r" % (body,) 30 31 32 channel.basic_consume(callback, queue=queue_name, no_ack=True) 33 34 print ' [*] Waiting for messages. To exit press CTRL+C' 35 channel.start_consuming()
打开四个终端,运行一下命令:
发送端:
接收端:
转载于:https://www.cnblogs.com/jfl-xx/p/7345339.html
python中RabbitMQ的使用(路由键模糊匹配)相关推荐
- Python中RabbitMQ的使用
Python中RabbitMQ的使用 文章目录 Python中RabbitMQ的使用 一.AMQP协议 1.工作过程 2.细节问题 3.Exchange交换机 主题交换机: 4.Queue队列 5.C ...
- 刚安装的python如何使用-python中RabbitMQ的使用(安装和简单教程)
1,简介 RabbitMQ(Rabbit Message Queue)是流行的开源消息队列系统,用erlang语言开发. 1.1关键词说明: Broker:消息队列服务器实体. Exchange:消息 ...
- python写入csv文件中添加行_在python中为csv文件输出键添加值
这是我的输入csv文件. client_ip listener_service listener_port 127.0.0.1 LMNO 123 ::1 PQAR 768 ::1 PQAR 128 1 ...
- python中向字典循环加入键值对
向字典中的每一个键值对后面增加一个 'user':'1': {'rjtb.1': {'id': 'rjtb.1','original_text': '学校有14棵杨树,杨树的棵数是松树的2倍,柳树比松 ...
- python 地址模糊匹配_使用python处理selenium中的xpath定位元素的模糊匹配问题
# 用contains,寻找页面中style属性值包含有sp.gif这个关键字的所有div元素,其中@后面可以跟该元素任意的属性名. self.driver.find_element_by_xpath ...
- C#中MySQL语句带参数的模糊匹配问题
用的是MySQL数据库,但是当我用带参数的sql语句进行模糊查询时,发现MySQL没有识别我的参数中的内容.经过了多次实验,终于找到了答案,拿出来和大家分享,不多说了,详细如下: public Dat ...
- python中怎么比较两个列表-如何比较python中的两个列表并返回匹配
快速性能测试显示Lutz的解决方案是最好的:import timedef speed_test(func): def wrapper(*args, **kwargs): t1 = time.time( ...
- element-UI中el-select组件使用拼音进行模糊匹配可选择项
一.安装pinyin-match包 yarn add pinyin-match 二.引入包 import PinYinMatch from 'pinyin-match'; 三.直接上代码 <el ...
- python 路由转发_RabbitMQ之路由键转发消息
RabbitMQ学习 消息队列:目前流行的有 Kafka.RabbitMQ.ActiveMQ等 功能:为了解决消息的分布式消费,完成项目.服务之间的解耦动作.消息的生产者与消费者之间完全采用异步通信方 ...
最新文章
- SpringBoot+MySQL+MyBatis+Shiro+AdminLTE
- 2016第51周三产品经理如何更有说服力
- GMGDC专訪戴亦斌:具体解释QAMAster全面測试服务6大功能
- python水印 resized_如何改进Python中的水印图像?
- stl向量_如何在C ++ STL中将数组元素复制到向量?
- java多个文件压缩_java实现多个文件压缩
- PHP操作tcpdf插件生成PDF
- php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
- RoboWare Studio使用的部分问题
- flutter微信登录与支付--fluwx
- 优矿python开源_PythonStock(8):使用优矿web学习python入门
- 24个关键词致敬科比系列之——凌晨四点
- TI男选隐形眼镜之机器学习
- 运行shell脚本时怎么知道jdk路径_linux查看java jdk安装路径和设置环境变量 – HouYing – 博客频道 – CSDN.NET...
- 决策树(四):使用决策树预测隐形眼镜类型
- 肾囊肿的临床症状有哪些?
- 如何在未越狱的iOS 设备上安装 ipa
- BERT cased和uncased的区别
- ubuntu11.04下Discuz论坛的安装
- 类似QQ农场的html模板,这个机器人种菜像玩QQ农场一样简单 你只需收割
热门文章
- 百度贴吧前负责人:做产品16年,我有9条心得[转]
- 端口停止使用_我停止使用
- div文字自动扩充_文字资料扩充
- 美国将对所有墨西哥输美商品加征关税,为何日本股市反而大跌?
- 怎么样从一个疯狂下载者成为一个学习者
- 阿联酋esma认证_阿联酋无人驾驶汽车预计2021年上路
- 操作系统锁的实现方法有哪几种_「从入门到放弃-Java」并发编程-锁-synchronized...
- aws mysql价格_mysql – AWS RDS“转出”成本有多贵?
- python找房源_Python租房信息分析!找到最适合自己的房源信息!
- python怎么退出help_(转)python中如何使用help命令?