rabbitmq python 消费者_菜鸟世界 -RabbitMQ---消费者示例
1、消费者的作用
消费者是勤勤恳恳的劳动者,它一直等待RabbitMQ给它分配任务,加入有100个任务,这些任务是由一个或是多个生产者生产出来的,现在,这些任务都放在RabbitMQ里。
消费者启动后,指明自己要接收哪个队列的任务,RabbitMQ会将队列里的任务发送给这个消费者。如果有多个消费者呢,RabbitMQ大致上会平均分配任务。消费者的示例代码和生产者的示例代码有很多相同的部分,都要与RabbitMQ建立连接,获得信道,指明队列,不同的是消费者多了一个处理任务的函数。
2、示例代码
#coding=utf-8
import pika
# 建立到代理服务器的连接
credentials = pika.PlainCredentials('admin','123456')
#virtual_host 指定虚拟主机
conn_params = pika.ConnectionParameters(host='192.168.0.207',virtual_host='kwsy',credentials=credentials)
conn_broker = pika.BlockingConnection(conn_params)
# 获得信道
channel = conn_broker.channel()
excharge_name = 'demo-excharge'
#如果passive为True,而excharge还不存在,就抛出一个异常,如果存在,返回Declare-Ok
#durable 设置为True,rabbitmq重启后会重新创建交换器
#auto_delete 设置为True,则没有队列绑定到交换器时,自动删除交换器
channel.exchange_declare(exchange=excharge_name,
type='direct',
passive=False,
durable=True,
auto_delete=False
)
#声明一个队列
queue_name = 'kwsy-queue'
channel.queue_declare(queue=queue_name)
channel.queue_bind(queue=queue_name,
exchange='demo-excharge',
routing_key='apple'
)
def msg_recv(channel,method,header,body):
channel.basic_ack(delivery_tag=method.delivery_tag)
if body == "quit":
channel.basic_cancel(consumer_tag='demo-consumer')
channel.stop_consuming()
else:
print body
channel.basic_consume(msg_recv,queue=queue_name,consumer_tag="demo-consumer")
channel.start_consuming()
有了生产者和消费者,你可以同时启动他们,并且可以结合web管理页面来查看他们工作的过程。
rabbitmq python 消费者_菜鸟世界 -RabbitMQ---消费者示例相关推荐
- python画鸟_菜鸟世界 -使用python制作一张字符画
1.灰度图与字符画 黑白照片大家都不陌生,但黑白照片并不是只有黑白两种颜色,还有介于黑和白之间的颜色,这些颜色色深度从0到255,0是黑色,255是白色,也叫灰度值 制作一张字符画的原理就是先将一张图 ...
- python encoding报错_菜鸟世界 -docker 环境下解决python 的 UnicodeEncodeError 错误
1. 问题描述 使用docker部署python的web服务,框架使用flask,服务部署以后进行测试,服务端报出UnicodeEncodeError 我用的python版本是3.6,按理说,对字符编 ...
- python 调试代码_菜鸟世界 -借助ipython 调试代码
1.IPython IPython是一个python的交互式shell,比python默认的shell要好用的多,今天我们就来学习一下如何借用IPython来调试代码 2. 一段有错误的代码 # co ...
- python class namedtuple 效率_菜鸟世界 -python进阶之 namedtuple
1.namedtuple tuple是不可变序列,当你不希望外界可以随意的改变你的函数返回值的时候,不妨将你的返回值以tuple的形式返回,tuple还可以做为字典的key,这些都是tuple的独到之 ...
- python经典类新式类_菜鸟世界 -python进阶---新式类与经典类
1.什么是新式类,什么是经典类 #coding=utf-8 class A: pass class B(object): pass A是经典类,B是新式类,这是Python2.x 里所特有的现象,之所 ...
- 手机上的python编辑器_菜鸟教程在线编辑器|菜鸟教程app手机版下载(html/java/python3)v1.0-乐游网安卓下载...
<菜鸟教程app手机版>是一款为想要学习编程的朋友们打造的在线学习和编辑的软件,菜鸟教程app中有着html.java.C++等众多不同的编程语言可以学习,软件还自带编辑功能,有着java ...
- python进阶免费-菜鸟世界 -python进阶---生成器
1. 什么是生成器 上一讲是迭代器,生成器本质上也是迭代器,生成器不会把结果保存在序列里,但是会保存生成器的状态,每次迭代时返回一个值,知道遇到StopIteration 时结束 2.获得一个生成器 ...
- RabbitMQ 入门系列(3)— 生产者消费者 Python 代码实现
生产者消费者代码示例 上一章节中对消息通信概念做了详细的说明,本章节我们对 RabbitMQ 生产者和消费者代码分别做一示例说明. 1. 生产者代码 #!/usr/bin/env python # c ...
- rabbitmq多个消费者_为什么要选择RabbitMQ,RabbitMQ简介,各种MQ选型对比
MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: 1.其实我们在双11的时候,当我们凌晨大量的秒杀和抢购商品,然后去结算的时候,就会发现 ...
最新文章
- android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...
- 用Python让单片机“行动”起来——MicroPython实战入门篇
- QT打开和保存文件对话框
- java 前端页面传过来的值怎么防止篡改_答对这40道经典web前端面试题,想不拿到offer都难!...
- mysql HEX将字符串或数字转化为16进制字符串、UNHEX将16字符串转化成二进制
- android 4个布局,Android - 4种基本布局
- spring 框架发送 simpleMail email
- Nebula3渲染层: Graphics
- ubuntu中安装pdf虚拟打印机
- 【千峰网安学习】利用PE破解系统密码
- oracle误删除数据恢复
- golang flag
- 竞品分析—微博PK微信
- 《软件工程——实践者的研究方法》重难点复习笔记(第八章——理解需求)
- 数据中台的规划设计理念
- 云原生CICD:Tekton之TaskTaskRun概念篇
- shell编程实现:依次提示用户输入3个整数,脚本根据数字大小依次排序输出3个数字。
- 单目标应用:基于北方苍鹰优化算法NGO的概率神经网络PNN数据分类(提供MATLAB代码)
- 行式和列式存储说明以及OLAP特点介绍
- 女神节来了,快给那个Ta做个公众号推送早安问候及天气预报,可自动定时推送哦~
热门文章
- 神经网络七十年:回顾与展望
- 没有点真的大项目工程经验,你真以为能进大厂的算法岗?
- 有了四步解题法模板,再也不害怕动态规划!
- 2019天猫双11成交额达2684亿,盘点今年双11有哪些亮点!
- JavaScript自动评论,记下你看博客的时间
- 防火墙产品原理与应用:NAT支持的特殊协议
- python 解决IndentationError: unexpected unindent的报错!和通用代码框架,import requests def getHTMLText(url)...的解释
- 21个深度学习调参技巧,一定要看到最后一个
- PB 级数据处理挑战,Kubernetes如何助力基因分析?
- 存储 dict 的元素前是计算 key 的 hash 值?