zoukankan      html  css  js  c++  java
  • 广播模式下的生产者与消费者fanout模式

    生产者

    #coding=utf-8
    import pika
    import sys
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))  #建立socket连接可以加各种参数,端口,用户名,等
    channel = connection.channel()  #声明一个管道
    
    channel.exchange_declare(exchange='logs',exchange_type='fanout')   #声明广播
    channel.basic_publish(exchange='logs',routing_key='',
                                       body = 'hellow,word',#队列的名字、消息内容
    
                                       )
    
    print 'send hellow,word'
    connection.close()
    

     消费者

    #coding=utf-8
    import pika
    import time
    connection = pika.BlockingConnection(pika.ConnectionParameters(host = 'localhost'))
    channel = connection.channel()
    channel.exchange_declare(exchange='logs'
    exchange_type='fanout') #直接加位置参数会出错,必须指定参数 result = channel.queue_declare(exclusive=True)#生成一个随机队列,用完之后删除 queue_name = result.method.queue channel.queue_bind(exchange='logs',queue=queue_name) def callback(ch,method,properties,body): #回调函数 print '收到消息:',body time.sleep(30) print '消息处理完毕:', body channel.basic_consume(callback,queue=queue_name #no_ack=True 需要客户端确认,如果正在处理消息的时候客户端挂掉就会转到下一个客户端,会等待消息完整的处理完 )#如果收到消息就调用callback来处理消息 print '等待接收消息。。。。。' channel.start_consuming() #循环持续运行下去 #消息持久化
  • 相关阅读:
    svn命令
    dos 批处理删除svn目录
    Libevent 的多线程操作
    Linux Daemon 类程序
    模板函数 使用的默认void 模板报错
    配置BUG-Linux系统下ssh登陆很慢的解决办法
    Centos apache + mysql + usvn 配置svn 服务器
    Centos 7U盘安装
    mysql 常用基础
    shell 的 md5 命令
  • 原文地址:https://www.cnblogs.com/qiangayz/p/8654751.html
Copyright © 2011-2022 走看看