Files
mnote/services/ingest_service/app/models/job.py
T

33 lines
1004 B
Python
Raw Normal View History

2025-11-23 10:55:04 +08:00
from dataclasses import dataclass, field
from datetime import datetime
from typing import Dict, List, Optional
@dataclass
class IngestJob:
2026-01-18 05:13:53 +08:00
"""表示一次 ingest 任务,后续可持久化到数据库"""
2025-11-23 10:55:04 +08:00
id: str
notebook_id: Optional[str]
doc_id: Optional[str]
status: str = "queued"
source: str = "manual"
blocks: List[str] = field(default_factory=list)
created_at: datetime = field(default_factory=datetime.utcnow)
updated_at: datetime = field(default_factory=datetime.utcnow)
error_message: Optional[str] = None
payload: Dict[str, str] = field(default_factory=dict)
def mark_running(self) -> None:
self.status = "running"
self.updated_at = datetime.utcnow()
def mark_done(self) -> None:
self.status = "succeeded"
self.updated_at = datetime.utcnow()
def mark_failed(self, message: str) -> None:
self.status = "failed"
self.error_message = message
self.updated_at = datetime.utcnow()