feat: blank taskiq setup

This commit is contained in:
2025-10-30 17:06:30 +04:00
parent 307e6573e3
commit 36b3e056dc
10 changed files with 298 additions and 0 deletions

View File

@ -29,5 +29,7 @@ from .module import ( # noqa: F401
)
from .project import Project as Project
from .status import Status as Status, DealStatusHistory as DealStatusHistory
from .task import CeleryTask as CeleryTask, CeleryActiveTask as CeleryActiveTask
from .auth import User as User
configure_mappers()

22
models/auth.py Normal file
View File

@ -0,0 +1,22 @@
from typing import TYPE_CHECKING
from sqlalchemy.orm import Mapped, relationship
from models.base import BaseModel
from models.mixins import IdMixin, SoftDeleteMixin
if TYPE_CHECKING:
from models import CeleryTask, CeleryActiveTask
class User(BaseModel, IdMixin, SoftDeleteMixin):
__tablename__ = "users"
celery_tasks: Mapped["CeleryTask"] = relationship(
back_populates="user",
lazy="noload",
)
celery_active_tasks: Mapped["CeleryActiveTask"] = relationship(
back_populates="user",
lazy="noload",
)

58
models/task.py Normal file
View File

@ -0,0 +1,58 @@
from datetime import datetime, timezone
from typing import Optional, TYPE_CHECKING
from sqlalchemy import String, DateTime, ForeignKey
from sqlalchemy.dialects.postgresql import BYTEA
from sqlalchemy.orm import Mapped, mapped_column, relationship
from models.base import BaseModel
from models.mixins import IdMixin
if TYPE_CHECKING:
from models.auth import User
class CeleryTask(BaseModel, IdMixin):
__tablename__ = "celery_taskmeta"
task_id: Mapped[int] = mapped_column(String(155), unique=True)
status: Mapped[int] = mapped_column(String(50))
result: Mapped[bytes] = mapped_column(BYTEA)
date_done: Mapped[datetime] = mapped_column(
DateTime(timezone=True),
default=lambda: datetime.now(timezone.utc),
)
traceback: Mapped[str] = mapped_column()
name: Mapped[str] = mapped_column(String(155))
args: Mapped[bytes] = mapped_column(BYTEA)
kwargs: Mapped[bytes] = mapped_column(BYTEA)
worker: Mapped[str] = mapped_column(String(155))
retries: Mapped[int] = mapped_column()
queue: Mapped[str] = mapped_column(String(155))
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
user: Mapped["User"] = relationship(
back_populates="celery_tasks",
lazy="noload",
)
class CeleryActiveTask(BaseModel):
__tablename__ = "celery_taskmeta_active"
task_id: Mapped[str] = mapped_column(
String(155),
primary_key=True,
)
status: Mapped[str] = mapped_column(String(50))
name: Mapped[str] = mapped_column(String(155))
is_notification_hidden: Mapped[bool] = mapped_column(
default=False,
server_default="0",
)
user_id: Mapped[Optional[int]] = mapped_column(ForeignKey("users.id"))
user: Mapped[Optional["User"]] = relationship(
back_populates="celery_active_tasks",
lazy="noload",
)