#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Auto-Fallback Match Poller Versucht TDRA API, fällt auf NexusControl Daten zurück """ import time import logging from datetime import datetime import mysql.connector from mysql.connector import Error # Importiere unsere Poller from match_poller_tdra_real import TDRRealMatchPoller from match_poller_nexus_only import NexusOnlyMatchPoller logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler('match_poller.log'), logging.StreamHandler() ] ) class AutoFallbackPoller: def __init__(self, db_config: Dict): self.db_config = db_config self.tdra_poller = TDRRealMatchPoller(db_config) self.nexus_poller = NexusOnlyMatchPoller(db_config) def run_auto_polling(self): """Führt automatisches Polling mit Fallback durch""" logging.info("=== AUTO-FALLBACK POLLING ===") # 1. Versuche TDRA API logging.info("Versuche TDRA API...") try: self.tdra_poller.run_tdra_real_polling() logging.info("✅ TDRA API erfolgreich!") return True except Exception as e: logging.warning(f"⚠️ TDRA API fehlgeschlagen: {e}") # 2. Fallback zu NexusControl logging.info("Fallback zu NexusControl Daten...") try: self.nexus_poller.run_nexus_only_polling() logging.info("✅ NexusControl Fallback erfolgreich!") return True except Exception as e: logging.error(f"❌ NexusControl Fallback fehlgeschlagen: {e}") return False def main(): """Hauptfunktion""" db_config = { 'host': 'localhost', 'database': 'NexusControl', 'user': 'root', 'password': 'HOk~k5$!0q', 'charset': 'utf8mb4' } poller = AutoFallbackPoller(db_config) print("=== AUTO-FALLBACK MATCH POLLER ===") print("1. Versucht TDRA API") print("2. Fallback zu NexusControl") print("3. Immer funktionierend!") print() poller.run_auto_polling() if __name__ == "__main__": main()