Middleware
Topics
Quick Overview
from core.middleware import Middleware
from core.redis_manager import redis_manager
import time
class LoggingMiddleware(Middleware):
async def handle(self, context, next_handler):
"""Log incoming messages with Redis integration"""
start_time = time.time()
topic = context['topic']
self.logger.info(f"Processing message on topic: {topic}")
# Increment message counter in Redis
if redis_manager.is_enabled():
await redis_manager.incr(f"stats:messages:{topic}")
await redis_manager.incr("stats:messages:total")
# Call the next handler in the chain
result = await next_handler(context)
# Log processing time
processing_time = time.time() - start_time
self.logger.info(f"Message processed in {processing_time:.3f}s")
return resultCommon Middleware Patterns
Authentication Middleware
Caching Middleware
Next Steps
Last updated