#!/usr/bin/env python import pika def get_connection(): return pika.BlockingConnection(pika.ConnectionParameters(host="localhost")) def subscribe( queue_name, topic, publish_exchange="soar_publish", broadcast_exchange="soar_broadcast", ): adm_connection = get_connection() admin_channel = adm_connection.channel() admin_channel.exchange_declare(exchange=broadcast_exchange, exchange_type="fanout") admin_channel.queue_bind(exchange=broadcast_exchange, queue=queue_name) sub_connection = get_connection() subscriber_channel = sub_connection.channel() subscriber_channel.exchange_declare( exchange=publish_exchange, exchange_type="topic" ) subscriber_channel.queue_bind( exchange=publish_exchange, queue=queue_name, routing_key=topic )