#!/usr/bin/env python3 """ Redis Channel Monitor - слушает события на каналах ocr_events:* """ import redis import json import sys from datetime import datetime def monitor_redis_channels(): try: # Подключаемся к Redis r = redis.Redis(host='crm.clientright.ru', port=6379, decode_responses=True) # Создаем PubSub объект pubsub = r.pubsub() # Подписываемся на pattern pubsub.psubscribe('ocr_events:*') print(f"🔊 Слушаем Redis каналы: ocr_events:*") print(f"⏰ Начало мониторинга: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") print("=" * 80) print() # Слушаем сообщения for message in pubsub.listen(): if message['type'] == 'pmessage': channel = message['channel'] data = message['data'] timestamp = datetime.now().strftime('%H:%M:%S.%f')[:-3] print(f"⏰ {timestamp}") print(f"📢 Канал: {channel}") # Пытаемся распарсить JSON try: parsed_data = json.loads(data) print(f"📦 Данные:") print(json.dumps(parsed_data, indent=2, ensure_ascii=False)) except json.JSONDecodeError: print(f"📦 Данные (raw): {data}") print("-" * 80) print() except KeyboardInterrupt: print("\n\n⛔ Мониторинг остановлен") sys.exit(0) except Exception as e: print(f"❌ Ошибка: {e}") sys.exit(1) if __name__ == '__main__': monitor_redis_channels()