Files
service-finder/backend/app/services/robot_manager.py

40 lines
1.4 KiB
Python

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