<reponame>Py-Himanshu-Patel/Learn-Python
import pika
import sys

connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))
channel = connection.channel()

# declare the topic exchange
channel.exchange_declare(exchange="topic_logs", exchange_type="topic")
# declare the queue with random name
result = channel.queue_declare("", exclusive=True)
queue_name = result.method.queue

# get the binding key which is the (. seperated )topic name
binding_keys = sys.argv[1:]
if not binding_keys:
    sys.stderr.write("Usage: %s [binding_key]...\n" % sys.argv[0])
    sys.exit(1)

# make queue bind to a particular topic (provided it as routing_key)
for binding_key in binding_keys:
    channel.queue_bind(exchange="topic_logs", queue=queue_name, routing_key=binding_key)

print(" [*] Waiting for logs. To exit press CTRL+C")


def callback(ch, method, properties, body):
    print(" [x] %r:%r" % (method.routing_key, body))


channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
channel.start_consuming()

import pika
import sys

connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))
channel = connection.channel()

# declare the topic exchange
channel.exchange_declare(exchange="topic_logs", exchange_type="topic")
# declare the queue with random name
result = channel.queue_declare("", exclusive=True)
queue_name = result.method.queue

# get the binding key which is the (. seperated )topic name
binding_keys = sys.argv[1:]
if not binding_keys:
    sys.stderr.write("Usage: %s [binding_key]...\n" % sys.argv[0])
    sys.exit(1)

# make queue bind to a particular topic (provided it as routing_key)
for binding_key in binding_keys:
    channel.queue_bind(exchange="topic_logs", queue=queue_name, routing_key=binding_key)

print(" [*] Waiting for logs. To exit press CTRL+C")


def callback(ch, method, properties, body):
    print(" [x] %r:%r" % (method.routing_key, body))


channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
channel.start_consuming()
# declare the topic exchange # declare the queue with random name # get the binding key which is the (. seperated )topic name # make queue bind to a particular topic (provided it as routing_key)