#!/usr/bin/env python3 """ Run Multi-Queue Load Balancing Test """ import asyncio import sys import os # Add current directory to Python path sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from product.direct_multi_publish import setup_multi_queue_balance, BalancedProducer from comsumer.direct_multi_consumer import start_balanced_consumers async def run_multi_queue_balance_test(): """Run multi-queue load balancing test with producer and consumer""" print("=== Running Multi-Queue Load Balancing Test ===") queue_count = 3 # Start consumer in background consumer_task = asyncio.create_task(start_balanced_consumers(queue_count=queue_count)) # Wait for consumer to start await asyncio.sleep(1) # Setup and publish messages await setup_multi_queue_balance(queue_count=queue_count) producer = BalancedProducer(queue_count=queue_count) await producer.connect() for i in range(10): await producer.publish(f"Task {i + 1}: Multi-queue load balancing test") await asyncio.sleep(0.3) await producer.close() # Wait for messages to be processed await asyncio.sleep(3) # Cancel consumer consumer_task.cancel() print("✅ Multi-queue load balancing test completed successfully!") if __name__ == "__main__": asyncio.run(run_multi_queue_balance_test())