feat: implement pivot-currency model, rbac smart tokens & fix circular imports
This commit is contained in:
@@ -1,40 +1,37 @@
|
||||
# /app/services/robot_manager.py
|
||||
import asyncio
|
||||
import logging
|
||||
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
|
||||
# Megjegyzés: Ellenőrizd, hogy a harvester_bikes/trucks fájlokban is BaseHarvester az alap!
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class RobotManager:
|
||||
@staticmethod
|
||||
async def run_full_sync(db):
|
||||
"""Sorban lefuttatja az összes robotot."""
|
||||
print(f"🕒 Szinkronizáció indítva: {datetime.now()}")
|
||||
"""Sorban lefuttatja a robotokat az új AssetCatalog struktúrához."""
|
||||
logger.info(f"🕒 Teljes szinkronizáció indítva: {datetime.now()}")
|
||||
|
||||
robots = [
|
||||
CarHarvester(),
|
||||
BikeHarvester(),
|
||||
TruckHarvester()
|
||||
# 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)
|
||||
logger.info(f"✅ {robot.category} robot sikeresen lefutott.")
|
||||
await asyncio.sleep(5)
|
||||
except Exception as e:
|
||||
print(f"❌ Hiba a {robot.category} robotnál: {e}")
|
||||
logger.error(f"❌ Kritikus 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
|
||||
await asyncio.sleep(70)
|
||||
await asyncio.sleep(30)
|
||||
Reference in New Issue
Block a user