Prabha-AIMLOPS's picture
initial files
2452e46 verified

Redis Message Queue Test Project

This project demonstrates the usage of the async-framework library with multiple queues, publishers, and consumers.

Project Structure

  • config.py - Configuration for Redis and broker settings
  • message_generators.py - Message generators for different queue types
  • publishers.py - Publishers for different queues
  • consumers.py - Consumers with message handlers

Setup

  1. Install Redis:

    • Windows: Download from Redis Windows
    • Linux: sudo apt-get install redis-server
    • MacOS: brew install redis
  2. Create and activate virtual environment:

python -m venv venv
.\venv\Scripts\activate  # Windows
source venv/bin/activate  # Linux/MacOS
  1. Install dependencies:
pip install async-framework structlog
  1. Start Redis server:
redis-server

Running the Test

  1. Start the consumers:
python consumers.py
  1. In a new terminal, start the publishers:
python publishers.py

Message Types

  1. Orders Queue:

    • Order details with ID, customer, amount
    • Simulated processing time: 0.5s
    • Fails for orders > $900
  2. Notifications Queue:

    • Notification details with type and priority
    • Simulated processing time: 0.3s
    • High priority notifications fail twice before success
  3. Analytics Queue:

    • Event tracking data
    • Simulated processing time: 0.1s
    • No simulated failures

Monitoring

Access Prometheus metrics at:

http://localhost:8000

Available metrics:

  • messages_published_total
  • messages_processed_total
  • message_processing_seconds