bmc_hub/app/jobs/anydesk_local_sync.py

42 lines
1.3 KiB
Python
Raw Permalink Normal View History

"""
AnyDesk local sessions sync job.
Polls local AnyDesk bridge endpoint and enriches local session rows.
"""
import logging
from app.core.config import settings
from app.services.anydesk import AnyDeskService
logger = logging.getLogger(__name__)
anydesk_service = AnyDeskService()
async def sync_anydesk_local_sessions():
"""Sync AnyDesk sessions from local endpoint every N minutes."""
if not settings.ANYDESK_LOCAL_SYNC_ENABLED:
return
try:
logger.info("🔄 AnyDesk local sync started")
result = await anydesk_service.fetch_sessions_from_local_endpoint(
endpoint_url=settings.ANYDESK_LOCAL_SESSIONS_URL,
timeout_seconds=settings.ANYDESK_LOCAL_SYNC_TIMEOUT_SECONDS,
dry_run=settings.ANYDESK_LOCAL_SYNC_DRY_RUN,
)
if result.get("error"):
logger.error("❌ AnyDesk local sync failed: %s", result["error"])
return
logger.info(
"✅ AnyDesk local sync completed: total=%s imported=%s updated=%s matched=%s errors=%s",
result.get("total", 0),
result.get("imported", 0),
result.get("updated", 0),
result.get("matched", 0),
len(result.get("errors") or []),
)
except Exception as exc:
logger.error("❌ Unexpected AnyDesk local sync error: %s", exc)