2025-10-27 19:37:41 +03:00
|
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
"""
|
|
|
|
|
|
Тест прямой публикации в Redis (имитация n8n Redis ноды)
|
|
|
|
|
|
"""
|
|
|
|
|
|
import redis
|
|
|
|
|
|
import json
|
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
print("=" * 60)
|
|
|
|
|
|
print("🧪 ТЕСТ ПРЯМОЙ ПУБЛИКАЦИИ В REDIS")
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
# Тестовые данные
|
|
|
|
|
|
claim_id = "CLM-TEST-DIRECT-123"
|
|
|
|
|
|
channel = f"ocr_events:{claim_id}"
|
|
|
|
|
|
|
|
|
|
|
|
event_data = {
|
|
|
|
|
|
"event_type": "ocr_completed",
|
|
|
|
|
|
"status": "success",
|
|
|
|
|
|
"message": "✅ Тест прямой публикации из Python (имитация n8n)",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"file_id": "test-file-123",
|
|
|
|
|
|
"is_valid_document": True,
|
|
|
|
|
|
"test_mode": True,
|
|
|
|
|
|
"source": "direct_redis_publish"
|
|
|
|
|
|
},
|
|
|
|
|
|
"timestamp": datetime.now().isoformat()
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
message = json.dumps(event_data, ensure_ascii=False)
|
|
|
|
|
|
|
|
|
|
|
|
print(f"\n📺 Канал: {channel}")
|
|
|
|
|
|
print(f"📦 Сообщение:")
|
|
|
|
|
|
print(json.dumps(event_data, indent=2, ensure_ascii=False))
|
|
|
|
|
|
print("\n" + "=" * 60)
|
|
|
|
|
|
|
|
|
|
|
|
# Публикация
|
|
|
|
|
|
try:
|
|
|
|
|
|
num_subscribers = r.publish(channel, message)
|
|
|
|
|
|
print(f"\n✅ Сообщение опубликовано!")
|
|
|
|
|
|
print(f"👥 Количество подписчиков: {num_subscribers}")
|
|
|
|
|
|
|
|
|
|
|
|
if num_subscribers == 0:
|
|
|
|
|
|
print("\n⚠️ ВНИМАНИЕ: Нет активных подписчиков!")
|
|
|
|
|
|
print(" Это нормально, если никто не слушает канал.")
|
|
|
|
|
|
print(" Запусти monitor_redis_direct.py в другом терминале.")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f"\n🎉 {num_subscribers} подписчик(ов) получили сообщение!")
|
|
|
|
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f"\n❌ Ошибка публикации: {e}")
|
|
|
|
|
|
finally:
|
|
|
|
|
|
r.close()
|
|
|
|
|
|
|
|
|
|
|
|
print("\n" + "=" * 60)
|
|
|
|
|
|
print(f"⏰ Завершено: {datetime.now().strftime('%H:%M:%S')}")
|
|
|
|
|
|
|
2025-10-28 10:02:42 +03:00
|
|
|
|
|
2025-10-28 12:43:38 +03:00
|
|
|
|
|