import asyncio from datetime import datetime # Frissített importok az új fájlnevekhez: from .harvester_cars import CarHarvester from .harvester_bikes import BikeHarvester from .harvester_trucks import TruckHarvester class RobotManager: @staticmethod async def run_full_sync(db): """Sorban lefuttatja az összes robotot.""" print(f"🕒 Szinkronizáció indítva: {datetime.now()}") robots = [ CarHarvester(), BikeHarvester(), TruckHarvester() ] for robot in robots: try: # Itt a robot lekéri az API-tól az ÖSSZES márkát és frissít await robot.run(db) await asyncio.sleep(5) except Exception as e: print(f"❌ Hiba a {robot.category} robotnál: {e}") @staticmethod async def schedule_nightly_run(db): """ Egyszerű ciklus, ami figyeli az időt. Ha éjjel 2 óra van, elindítja a teljes szinkront. """ while True: now = datetime.now() # Ha hajnali 2 és 2:01 között vagyunk, indítás if now.hour == 2 and now.minute == 0: await RobotManager.run_full_sync(db) await asyncio.sleep(70) # Várunk, hogy ne induljon el többször ugyanabban a percben await asyncio.sleep(30) # 30 másodpercenként ellenőrizzük az időt