Files
life-echo/api/app/features/memory/enrichment_scheduler.py

51 lines
1.4 KiB
Python
Raw Normal View History

"""Memory enrichment scheduling boundary."""
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class MemoryEnrichmentRequest:
user_id: str
source_id: str
memoir_correlation_id: str | None = None
class MemoryEnrichmentScheduler:
"""Adapter around the Celery enrichment task name and queue policy."""
def schedule(self, request: MemoryEnrichmentRequest) -> str | None:
from app.tasks.memory_enrichment_tasks import schedule_memory_enrichment
return schedule_memory_enrichment(
request.user_id,
request.source_id,
memoir_correlation_id=request.memoir_correlation_id,
)
def schedule_many(
self,
user_id: str,
source_ids: list[str],
*,
memoir_correlation_id: str | None = None,
) -> list[str]:
task_ids: list[str] = []
for source_id in source_ids:
if not source_id:
continue
task_id = self.schedule(
MemoryEnrichmentRequest(
user_id=user_id,
source_id=source_id,
memoir_correlation_id=memoir_correlation_id,
)
)
if task_id:
task_ids.append(task_id)
return task_ids
__all__ = ["MemoryEnrichmentRequest", "MemoryEnrichmentScheduler"]