"""arq task functions. Thin wrappers around the ingestion runner so retry/ concurrency/observability behavior lives in arq's worker loop, not here. """ from __future__ import annotations from typing import Any from app.core.logging import get_logger from app.services.ingestion.runner import run_movie_ingestion, run_person_ingestion logger = get_logger(__name__) async def ingest_movie_task(ctx: dict[str, Any], external_id: str) -> str: movie_id = await run_movie_ingestion(external_id) return str(movie_id) async def ingest_person_task(ctx: dict[str, Any], external_id: str) -> str: person_id = await run_person_ingestion(external_id) return str(person_id)