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---消费者示例相关推荐

  1. python画鸟_菜鸟世界 -使用python制作一张字符画

    1.灰度图与字符画 黑白照片大家都不陌生,但黑白照片并不是只有黑白两种颜色,还有介于黑和白之间的颜色,这些颜色色深度从0到255,0是黑色,255是白色,也叫灰度值 制作一张字符画的原理就是先将一张图 ...

  2. python encoding报错_菜鸟世界 -docker 环境下解决python 的 UnicodeEncodeError 错误

    1. 问题描述 使用docker部署python的web服务,框架使用flask,服务部署以后进行测试,服务端报出UnicodeEncodeError 我用的python版本是3.6,按理说,对字符编 ...

  3. python 调试代码_菜鸟世界 -借助ipython 调试代码

    1.IPython IPython是一个python的交互式shell,比python默认的shell要好用的多,今天我们就来学习一下如何借用IPython来调试代码 2. 一段有错误的代码 # co ...

  4. python class namedtuple 效率_菜鸟世界 -python进阶之 namedtuple

    1.namedtuple tuple是不可变序列,当你不希望外界可以随意的改变你的函数返回值的时候,不妨将你的返回值以tuple的形式返回,tuple还可以做为字典的key,这些都是tuple的独到之 ...

  5. python经典类新式类_菜鸟世界 -python进阶---新式类与经典类

    1.什么是新式类,什么是经典类 #coding=utf-8 class A: pass class B(object): pass A是经典类,B是新式类,这是Python2.x 里所特有的现象,之所 ...

  6. 手机上的python编辑器_菜鸟教程在线编辑器|菜鸟教程app手机版下载(html/java/python3)v1.0-乐游网安卓下载...

    <菜鸟教程app手机版>是一款为想要学习编程的朋友们打造的在线学习和编辑的软件,菜鸟教程app中有着html.java.C++等众多不同的编程语言可以学习,软件还自带编辑功能,有着java ...

  7. python进阶免费-菜鸟世界 -python进阶---生成器

    1. 什么是生成器 上一讲是迭代器,生成器本质上也是迭代器,生成器不会把结果保存在序列里,但是会保存生成器的状态,每次迭代时返回一个值,知道遇到StopIteration 时结束 2.获得一个生成器 ...

  8. RabbitMQ 入门系列(3)— 生产者消费者 Python 代码实现

    生产者消费者代码示例 上一章节中对消息通信概念做了详细的说明,本章节我们对 RabbitMQ 生产者和消费者代码分别做一示例说明. 1. 生产者代码 #!/usr/bin/env python # c ...

  9. rabbitmq多个消费者_为什么要选择RabbitMQ,RabbitMQ简介,各种MQ选型对比

    MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: 1.其实我们在双11的时候,当我们凌晨大量的秒杀和抢购商品,然后去结算的时候,就会发现 ...

最新文章

  1. android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...
  2. 用Python让单片机“行动”起来——MicroPython实战入门篇
  3. QT打开和保存文件对话框
  4. java 前端页面传过来的值怎么防止篡改_答对这40道经典web前端面试题,想不拿到offer都难!...
  5. mysql HEX将字符串或数字转化为16进制字符串、UNHEX将16字符串转化成二进制
  6. android 4个布局,Android - 4种基本布局
  7. spring 框架发送 simpleMail email
  8. Nebula3渲染层: Graphics
  9. ubuntu中安装pdf虚拟打印机
  10. 【千峰网安学习】利用PE破解系统密码
  11. oracle误删除数据恢复
  12. golang flag
  13. 竞品分析—微博PK微信
  14. 《软件工程——实践者的研究方法》重难点复习笔记(第八章——理解需求)
  15. 数据中台的规划设计理念
  16. 云原生CICD:Tekton之TaskTaskRun概念篇
  17. shell编程实现:依次提示用户输入3个整数,脚本根据数字大小依次排序输出3个数字。
  18. 单目标应用:基于北方苍鹰优化算法NGO的概率神经网络PNN数据分类(提供MATLAB代码)
  19. 行式和列式存储说明以及OLAP特点介绍
  20. 女神节来了,快给那个Ta做个公众号推送早安问候及天气预报,可自动定时推送哦~

热门文章

  1. 神经网络七十年:回顾与展望
  2. 没有点真的大项目工程经验,你真以为能进大厂的算法岗?
  3. 有了四步解题法模板,再也不害怕动态规划!
  4. 2019天猫双11成交额达2684亿,盘点今年双11有哪些亮点!
  5. JavaScript自动评论,记下你看博客的时间
  6. 防火墙产品原理与应用:NAT支持的特殊协议
  7. python 解决IndentationError: unexpected unindent的报错!和通用代码框架,import requests def getHTMLText(url)...的解释
  8. 21个深度学习调参技巧,一定要看到最后一个
  9. PB 级数据处理挑战,Kubernetes如何助力基因分析?
  10. 存储 dict 的元素前是计算 key 的 hash 值?