42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
|
|
"""
|
||
|
|
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)
|