美文网首页
Python&Rabbitmq

Python&Rabbitmq

作者: Donald_32e5 | 来源:发表于2019-04-19 17:49 被阅读0次

    一、类库

    • Python操作rabbitmq的类库是pika

    二、基本使用

    三、Hello World

    发送消息

    • 首先连接到指定的mq
    • 接着声明队列(用''来指定exchange,它会为我们指定一个默认的交换机)
    • 把需要发送的消息装载好,运行就开始发送
    import pika
    
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()
    
    # 声明队列
    channel.queue_declare(queue='hello')
    
    # 发送消息
    channel.basic_publish(exchange='',
                          routing_key='hello',
                          body='Hello World!')
    print(" [x] Sent 'Hello World!'")
    connection.close()
    

    接受消息

    • 和之前一样,需要连接mq,并且需要确认队列已经存在
    • 从队列中获取消息稍显复杂,需要一个回调函数,获取消息的时候,pika库就会调用此函数
    • 接下来告诉mq这个函数会从hello队列中接收消息
    import pika
    
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()
    
    # 确认队列
    channel.queue_declare(queue='hello')
    
    def callback(ch, method, properties, body):
        print(" [x] Received %r" % body)
    
    # 接收消息
    channel.basic_consume('hello', callback, auto_ack=True)
    
    channel.start_consuming()
    

    四、注意

    • 可以通过mq的客户端添加exchange和queue
    • 在浏览器输入对应的mq所在服务器ip,如果在本机,可以用http://localhost:15672来访问,默认账号密码为guest\guest
    • 添加exchage


      =
    • 添加queue


    • 还可以设置虚拟host,如果设置了host,再添加交换机和队列的时候,还得设置host
    • 如果通过web客户端添加队列,在代码中就可以不用验证quere是否存在了

    相关文章

      网友评论

          本文标题:Python&Rabbitmq

          本文链接:https://www.haomeiwen.com/subject/kdgfgqtx.html