zoukankan      html  css  js  c++  java
  • python采用pika库使用rabbitmq(八)有选择的接收消息(exchange type=direct)

    RabbitMQ还支持根据关键字发送,即:队列绑定关键字,发送者将数据根据关键字发送到消息exchange,exchange根据 关键字 判定应该将数据发送至指定队列。

     1 import pika
     2 import sys
     3  
     4 connection = pika.BlockingConnection(pika.ConnectionParameters(
     5         host='localhost'))
     6 channel = connection.channel()
     7  
     8 channel.exchange_declare(exchange='direct_logs',
     9                          type='direct')
    10  
    11 severity = sys.argv[1] if len(sys.argv) > 1 else 'info'
    12 message = ' '.join(sys.argv[2:]) or 'Hello World!'
    13 channel.basic_publish(exchange='direct_logs',
    14                       routing_key=severity,
    15                       body=message)
    16 print(" [x] Sent %r:%r" % (severity, message))
    17 connection.close()
    publisher
     1 import pika
     2 import sys
     3  
     4 connection = pika.BlockingConnection(pika.ConnectionParameters(
     5         host='localhost'))
     6 channel = connection.channel()
     7  
     8 channel.exchange_declare(exchange='direct_logs',
     9                          type='direct')
    10  
    11 result = channel.queue_declare(exclusive=True)
    12 queue_name = result.method.queue
    13  
    14 severities = sys.argv[1:]
    15 if not severities:
    16     sys.stderr.write("Usage: %s [info] [warning] [error]
    " % sys.argv[0])
    17     sys.exit(1)
    18  
    19 for severity in severities:
    20     channel.queue_bind(exchange='direct_logs',
    21                        queue=queue_name,
    22                        routing_key=severity)
    23  
    24 print(' [*] Waiting for logs. To exit press CTRL+C')
    25  
    26 def callback(ch, method, properties, body):
    27     print(" [x] %r:%r" % (method.routing_key, body))
    28  
    29 channel.basic_consume(callback,
    30                       queue=queue_name,
    31                       no_ack=True)
    32  
    33 channel.start_consuming()
    subscriber

    参考于:http://www.cnblogs.com/alex3714/articles/5248247.html

  • 相关阅读:
    浅谈servlet源码
    移动端测试的8大过程
    Pc端微信加群和app端加群测试用例设计点
    视频播放的用例设计点
    发红包的测试用例设计点
    朋友圈点赞用例设计点
    ADB
    语音 小说 逻辑
    nginx
    Jenkins—安装与简单使用
  • 原文地址:https://www.cnblogs.com/GodLv/p/9953632.html
Copyright © 2011-2022 走看看