#!/usr/bin/env python import pika def get_connection(): return pika.BlockingConnection(pika.ConnectionParameters(host="localhost")) def deliver(body, queue_name): print("forward to: %s" % queue_name) deliver_connection = get_connection() deliver_channel = deliver_connection.channel() deliver_channel.queue_declare(queue=queue_name, durable=True) deliver_channel.basic_publish(exchange="", routing_key=queue_name, body=body) deliver_connection.close() def listen(from_queue_name, to_queue_name): def fwd_callback(ch, method, properties, body): delivered = deliver(body, to_queue_name) ch.basic_ack(delivery_tag=method.delivery_tag) listen_connection = get_connection() listen_channel = listen_connection.channel() listen_channel.queue_declare(queue=from_queue_name, durable=True) listen_channel.basic_consume( queue=from_queue_name, on_message_callback=fwd_callback ) listen_channel.start_consuming() def forward(from_queue_name, to_queue_name): listen(from_queue_name, to_queue_name)