2025-07-23 01:39:59 +09:00
|
|
|
from datetime import datetime
|
|
|
|
|
|
2025-08-03 00:54:23 +09:00
|
|
|
import sqlalchemy as sa
|
2025-08-24 23:07:22 +08:00
|
|
|
from celery import states
|
2025-07-31 19:43:04 +09:00
|
|
|
from sqlalchemy import DateTime, String
|
2025-07-23 01:39:59 +09:00
|
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
2024-02-06 13:21:13 +08:00
|
|
|
|
2025-07-20 08:35:53 +05:30
|
|
|
from libs.datetime_utils import naive_utc_now
|
2025-10-13 11:16:12 +09:00
|
|
|
from models.base import TypeBase
|
2025-02-17 17:05:13 +08:00
|
|
|
|
2025-11-20 09:44:39 +08:00
|
|
|
from .types import BinaryData, LongText
|
|
|
|
|
|
2023-05-15 08:51:32 +08:00
|
|
|
|
2025-10-13 11:16:12 +09:00
|
|
|
class CeleryTask(TypeBase):
|
2023-05-15 08:51:32 +08:00
|
|
|
"""Task result/status."""
|
|
|
|
|
|
2024-09-10 17:08:06 +08:00
|
|
|
__tablename__ = "celery_taskmeta"
|
2023-05-15 08:51:32 +08:00
|
|
|
|
2025-10-13 11:16:12 +09:00
|
|
|
id: Mapped[int] = mapped_column(
|
|
|
|
|
sa.Integer, sa.Sequence("task_id_sequence"), primary_key=True, autoincrement=True, init=False
|
|
|
|
|
)
|
|
|
|
|
task_id: Mapped[str] = mapped_column(String(155), unique=True)
|
|
|
|
|
status: Mapped[str] = mapped_column(String(50), default=states.PENDING)
|
2025-11-20 09:44:39 +08:00
|
|
|
result: Mapped[bytes | None] = mapped_column(BinaryData, nullable=True, default=None)
|
2025-10-13 11:16:12 +09:00
|
|
|
date_done: Mapped[datetime | None] = mapped_column(
|
2025-07-31 19:43:04 +09:00
|
|
|
DateTime,
|
2025-10-13 11:16:12 +09:00
|
|
|
default=naive_utc_now,
|
|
|
|
|
onupdate=naive_utc_now,
|
2024-09-10 17:08:06 +08:00
|
|
|
nullable=True,
|
|
|
|
|
)
|
2025-11-20 09:44:39 +08:00
|
|
|
traceback: Mapped[str | None] = mapped_column(LongText, nullable=True, default=None)
|
2025-10-13 11:16:12 +09:00
|
|
|
name: Mapped[str | None] = mapped_column(String(155), nullable=True, default=None)
|
2025-11-20 09:44:39 +08:00
|
|
|
args: Mapped[bytes | None] = mapped_column(BinaryData, nullable=True, default=None)
|
|
|
|
|
kwargs: Mapped[bytes | None] = mapped_column(BinaryData, nullable=True, default=None)
|
2025-10-13 11:16:12 +09:00
|
|
|
worker: Mapped[str | None] = mapped_column(String(155), nullable=True, default=None)
|
|
|
|
|
retries: Mapped[int | None] = mapped_column(sa.Integer, nullable=True, default=None)
|
|
|
|
|
queue: Mapped[str | None] = mapped_column(String(155), nullable=True, default=None)
|
2023-05-15 08:51:32 +08:00
|
|
|
|
|
|
|
|
|
2025-10-13 11:16:12 +09:00
|
|
|
class CeleryTaskSet(TypeBase):
|
2023-05-15 08:51:32 +08:00
|
|
|
"""TaskSet result."""
|
|
|
|
|
|
2024-09-10 17:08:06 +08:00
|
|
|
__tablename__ = "celery_tasksetmeta"
|
2023-05-15 08:51:32 +08:00
|
|
|
|
2025-07-23 01:39:59 +09:00
|
|
|
id: Mapped[int] = mapped_column(
|
2025-10-13 11:16:12 +09:00
|
|
|
sa.Integer, sa.Sequence("taskset_id_sequence"), autoincrement=True, primary_key=True, init=False
|
2025-07-23 01:39:59 +09:00
|
|
|
)
|
2025-10-13 11:16:12 +09:00
|
|
|
taskset_id: Mapped[str] = mapped_column(String(155), unique=True)
|
2025-11-20 09:44:39 +08:00
|
|
|
result: Mapped[bytes | None] = mapped_column(BinaryData, nullable=True, default=None)
|
2025-10-13 11:16:12 +09:00
|
|
|
date_done: Mapped[datetime | None] = mapped_column(DateTime, default=naive_utc_now, nullable=True)
|