• 实例1消费者


    #coding=utf-8
    import pika
    import time
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='hellow',#这里为什么会重新声明一个队列,是因为不确定是客户端先启动还是服务端先启动,所以先确认队列存在
                          durable=True) #防止rabbitmq服务器挂掉数据丢失了,队列持久化,durable只保存了队列,不保存队里里面的数据
    def callback(ch,method,properties,body):  #回调函数
        print '收到消息:',body
        time.sleep(30)
        print '消息处理完毕:', body
    channel.basic_consume(callback,queue='hellow',
                          #no_ack=True  需要客户端确认,如果正在处理消息的时候客户端挂掉就会转到下一个客户端,会等待消息完整的处理完
                          )#如果收到消息就调用callback来处理消息
    print '等待接收消息。。。。。'
    channel.start_consuming()   #循环持续运行下去
    
    #消息持久化
    

     已经定义的队列,再次定义是无效的,这就是幂次原理。RabbitMQ不允许重新定义一个已有的队列信息,也就是说不允许修改已经存在的队列的参数。如果非要这样做,只会返回异常。

  • 相关阅读:
    ovs流表机制(四)用vxlan实现多个节点的vm通信(二)
    expect
    在Scrapy中使用Selenium
    Python网络编程
    Scrapy持久化存储
    Scrapy基础
    Selenium实例
    XML和XPATH
    猫眼电影爬取
    Request模块
  • 原文地址:https://www.cnblogs.com/qiangayz/p/8648153.html
走看看 - 开发者的网上家园