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](https://github.com/microsoftarchive/redis/releases)
- Linux: `sudo apt-get install redis-server`
- MacOS: `brew install redis`
2. Create and activate virtual environment:
```bash
python -m venv venv
.\venv\Scripts\activate # Windows
source venv/bin/activate # Linux/MacOS
```
3. Install dependencies:
```bash
pip install async-framework structlog
```
4. Start Redis server:
```bash
redis-server
```
## Running the Test
1. Start the consumers:
```bash
python consumers.py
```
2. In a new terminal, start the publishers:
```bash
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