feat: 初始化零工后端代码

This commit is contained in:
Daniel
2026-04-01 14:19:25 +08:00
parent c6fabe262c
commit 84f8be7c0e
41 changed files with 2813 additions and 147 deletions

View File

@@ -9,6 +9,7 @@ from app.core.logging import logger
from app.domain.schemas import BootstrapResponse, JobCard, WorkerCard
from app.repositories.job_repository import JobRepository
from app.repositories.worker_repository import WorkerRepository
from app.services.cache_service import get_match_cache, get_query_cache
from app.services.rag.lightrag_adapter import LightRAGAdapter
@@ -19,17 +20,27 @@ class IngestService:
self.job_repository = JobRepository(db)
self.worker_repository = WorkerRepository(db)
self.rag = LightRAGAdapter(self.settings)
self.match_cache = get_match_cache()
self.query_cache = get_query_cache()
def ingest_job(self, card: JobCard) -> JobCard:
logger.info("ingest_job job_id=%s", card.job_id)
self.job_repository.upsert(card)
self.rag.upsert_job(card)
if self.settings.match_cache_enabled:
self.match_cache.clear()
if self.settings.query_cache_enabled:
self.query_cache.clear()
return card
def ingest_worker(self, card: WorkerCard) -> WorkerCard:
logger.info("ingest_worker worker_id=%s", card.worker_id)
self.worker_repository.upsert(card)
self.rag.upsert_worker(card)
if self.settings.match_cache_enabled:
self.match_cache.clear()
if self.settings.query_cache_enabled:
self.query_cache.clear()
return card
def bootstrap(self) -> BootstrapResponse:
@@ -43,6 +54,10 @@ class IngestService:
self.ingest_job(JobCard(**item))
for item in workers:
self.ingest_worker(WorkerCard(**item))
if self.settings.match_cache_enabled:
self.match_cache.clear()
if self.settings.query_cache_enabled:
self.query_cache.clear()
return BootstrapResponse(
jobs=len(jobs),
workers=len(workers),