2025-10-27 19:37:41 +03:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
"""
|
|
|
|
|
Мониторинг Redis Pub/Sub для проверки прямой публикации из n8n
|
|
|
|
|
"""
|
|
|
|
|
import redis
|
|
|
|
|
import json
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
print("=" * 60)
|
|
|
|
|
print("🎧 МОНИТОРИНГ REDIS PUB/SUB")
|
|
|
|
|
print("=" * 60)
|
|
|
|
|
|
|
|
|
|
# Подключение к Redis
|
|
|
|
|
r = redis.Redis(
|
|
|
|
|
host='crm.clientright.ru',
|
|
|
|
|
port=6379,
|
|
|
|
|
password='CRM_Redis_Pass_2025_Secure!',
|
|
|
|
|
decode_responses=True
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Проверка подключения
|
|
|
|
|
try:
|
|
|
|
|
r.ping()
|
|
|
|
|
print("✅ Redis подключен!")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(f"❌ Ошибка подключения: {e}")
|
|
|
|
|
exit(1)
|
|
|
|
|
|
|
|
|
|
# Подписка на все каналы ocr_events:*
|
|
|
|
|
pubsub = r.pubsub()
|
|
|
|
|
pubsub.psubscribe('ocr_events:*')
|
|
|
|
|
|
|
|
|
|
print(f"📡 Слушаем каналы: ocr_events:*")
|
|
|
|
|
print(f"⏰ Запущено: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
|
|
|
|
print("-" * 60)
|
|
|
|
|
print("\n⏳ Ожидаю события... (Ctrl+C для выхода)\n")
|
|
|
|
|
|
|
|
|
|
# Счётчик событий
|
|
|
|
|
event_count = 0
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
for message in pubsub.listen():
|
|
|
|
|
if message['type'] == 'pmessage':
|
|
|
|
|
event_count += 1
|
|
|
|
|
print(f"\n{'='*60}")
|
|
|
|
|
print(f"📢 СОБЫТИЕ #{event_count}")
|
|
|
|
|
print(f"⏰ Время: {datetime.now().strftime('%H:%M:%S')}")
|
|
|
|
|
print(f"📺 Канал: {message['channel']}")
|
|
|
|
|
print(f"📦 Данные:")
|
|
|
|
|
print("-" * 60)
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# Пытаемся распарсить как JSON
|
|
|
|
|
data = json.loads(message['data'])
|
|
|
|
|
print(json.dumps(data, indent=2, ensure_ascii=False))
|
|
|
|
|
except json.JSONDecodeError:
|
|
|
|
|
# Если не JSON - показываем как есть
|
|
|
|
|
print(message['data'])
|
|
|
|
|
|
|
|
|
|
print(f"{'='*60}\n")
|
|
|
|
|
|
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
|
print(f"\n\n✅ Остановлено. Получено событий: {event_count}")
|
|
|
|
|
print(f"⏰ Завершено: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
|
|
|
|
finally:
|
|
|
|
|
pubsub.close()
|
|
|
|
|
r.close()
|
|
|
|
|
|
2025-10-28 10:02:42 +03:00
|
|
|
|