40 lines
1.4 KiB
Python
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 |