26 lines
786 B
Python
26 lines
786 B
Python
"""# Summary
|
|
|
|
Job domain model — a pipeline work item consumed by the background worker.
|
|
"""
|
|
from typing import Literal
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class Job(BaseModel):
|
|
"""A unit of background work.
|
|
|
|
Attributes:
|
|
name (str): Job name.
|
|
status (str): Lifecycle status. Defaults to "pending".
|
|
retry_count (int): Times the job failed. Defaults to 0.
|
|
error_message (str | None): Last failure message. Defaults to None.
|
|
payload (dict | None): Arbitrary job payload. Defaults to None.
|
|
"""
|
|
|
|
name: str
|
|
status: Literal["pending", "processing", "done", "failed"] = "pending"
|
|
retry_count: int = Field(default=0)
|
|
error_message: str | None = None
|
|
payload: dict | None = None
|
|
|
|
model_config = {"extra": "ignore"} |