zoukankan      html  css  js  c++  java
  • Python-RabbitMQ(简单发送模型)

    RabbitMQ需要 erlang 和pika

    1.RabbitMQ和erlang版本必须匹配,否则就报没有进程错误

    2.RabbitMQ的erlang.cookie和windows下的erlang.cookie必须一致

    在windows安装RabbitMQ需要配置环境变量,一个是erlang环境变量,一个是RabbitMQ的环境变量切记!

    发送端:生产者

    import pika
    
    connection = pika.BlockingConnection(
        pika.ConnectionParameters('localhost'))
    channel =connection.channel()#声明一个管道,在管道里发消息
    
    #声明queue
    channel.queue_declare(queue='hello')#在管道里还得声明一个队列
    
    
    channel.basic_publish(exchange='',
                          routing_key='hello',#就是列队queue名字
                          body='Hello World'#消息内容
                          )
    print(" [x] Sent 'Hello World!'")
    connection.close()#不用关闭管道,关闭连接就行
    

     接收端:消费者

    import pika
    
    # 建立到达RabbitMQ Server的connection
    # 此处RabbitMQ Server位于本机-localhost
    connection = pika.BlockingConnection(pika.ConnectionParameters(
        'localhost'))
    channel = connection.channel()
    
    # 声明queue,确认要从中接收message的queue
    # queue_declare函数是幂等的,可运行多次,但只会创建一次
    # 若可以确信queue是已存在的,则此处可省略该声明,如producer已经生成了该queue
    # 但在producer和consumer中重复声明queue是一个好的习惯
    channel.queue_declare(queue='hello')
    
    print(' [*] Waiting for messages. To exit press CTRL+C')
    
    
    # 定义回调函数
    # 一旦从queue中接收到一个message回调函数将被调用
    # ch:channel
    # method:
    # properties:
    # body:message
    def callback(ch, method, properties, body):
        print(" [x] Received %r" % body)
    
    
    # 从queue接收message的参数设置
    # 包括从哪个queue接收message,用于处理message的callback,是否要确认message
    # 默认情况下是要对消息进行确认的,以防止消息丢失。
    # 此处将no_ack明确指明为True,不对消息进行确认。
    channel.basic_consume(callback,
                          queue="hello",
                          no_ack=True)
    
    # 开始循环从queue中接收message并使用callback进行处理
    channel.start_consuming()
    
  • 相关阅读:
    【刷题】BZOJ 3626 [LNOI2014]LCA
    【刷题】UOJ #207 共价大爷游长沙
    【刷题】COGS 2701 动态树
    【刷题】BZOJ 4530 [Bjoi2014]大融合
    【刷题】BZOJ 2959 长跑
    【刷题】BZOJ 1969 [Ahoi2005]LANE 航线规划
    【刷题】BZOJ 4998 星球联盟
    【刷题】BZOJ 1977 [BeiJing2010组队]次小生成树 Tree
    【刷题】BZOJ 4817 [Sdoi2017]树点涂色
    获取元素 在网页中的 坐标
  • 原文地址:https://www.cnblogs.com/fuyuteng/p/9244877.html
Copyright © 2011-2022 走看看