Files
fquiz/api/app/schemas/scheduler.py
T

42 lines
1.2 KiB
Python

from __future__ import annotations
from typing import Any
from pydantic import BaseModel, Field
class SchedulerEnqueueTaskRequest(BaseModel):
task_name: str = Field(min_length=1, max_length=255, alias="taskName")
queue_name: str | None = Field(default=None, max_length=255, alias="queueName")
task_id: str | None = Field(default=None, max_length=255, alias="taskId")
args: list[Any] = Field(default_factory=list)
kwargs: dict[str, Any] = Field(default_factory=dict)
model_config = {"populate_by_name": True}
class SchedulerEnqueueTaskResponse(BaseModel):
queued: bool = True
task_id: str = Field(alias="taskId")
queue_name: str = Field(alias="queueName")
task_name: str = Field(alias="taskName")
model_config = {"populate_by_name": True}
class SchedulerRevokeTaskRequest(BaseModel):
task_id: str = Field(min_length=1, max_length=255, alias="taskId")
terminate: bool = True
signal: str = Field(default="SIGTERM", max_length=32)
model_config = {"populate_by_name": True}
class SchedulerRevokeTaskResponse(BaseModel):
revoked: bool = True
task_id: str = Field(alias="taskId")
terminate: bool
signal: str
model_config = {"populate_by_name": True}