Files
post_crawler/src/database/models/task_page.py
T
2026-05-26 21:02:17 +08:00

33 lines
1.5 KiB
Python

"""Step2-岗位列表分析任务表"""
from datetime import datetime
from sqlalchemy import BigInteger, String, Integer, DateTime, Text
from sqlalchemy.orm import Mapped, mapped_column
from src.database.base import Base
class TaskPageAnalysis(Base):
"""岗位列表分析任务表 app_task_page_analysis"""
__tablename__ = "app_task_page_analysis"
id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True)
crawl_task_id: Mapped[int] = mapped_column(BigInteger, nullable=False, index=True)
status: Mapped[str] = mapped_column(String(32), default="pending", index=True)
retry_count: Mapped[int] = mapped_column(Integer, default=0)
max_retry: Mapped[int] = mapped_column(Integer, default=1)
# 输入
input_url: Mapped[str] = mapped_column(String(1024), nullable=False)
# 输出
output_selector: Mapped[str | None] = mapped_column(String(512), default=None)
output_change_type: Mapped[str | None] = mapped_column(String(32), default=None)
output_item_count: Mapped[int | None] = mapped_column(Integer, default=None)
error_message: Mapped[str | None] = mapped_column(Text, default=None)
started_at: Mapped[datetime | None] = mapped_column(DateTime, default=None)
finished_at: Mapped[datetime | None] = mapped_column(DateTime, default=None)
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now)
updated_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now, onupdate=datetime.now)