Initial commit: BtToxin Pipeline project structure
This commit is contained in:
32
backend/app/models/job.py
Normal file
32
backend/app/models/job.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""任务模型"""
|
||||
from sqlalchemy import Column, String, Integer, DateTime, JSON, Enum, Text
|
||||
from sqlalchemy.sql import func
|
||||
import enum
|
||||
|
||||
from ..database import Base
|
||||
|
||||
class JobStatus(str, enum.Enum):
|
||||
PENDING = "pending"
|
||||
RUNNING = "running"
|
||||
COMPLETED = "completed"
|
||||
FAILED = "failed"
|
||||
|
||||
class Job(Base):
|
||||
__tablename__ = "jobs"
|
||||
|
||||
id = Column(String, primary_key=True, index=True)
|
||||
celery_task_id = Column(String, nullable=True)
|
||||
status = Column(Enum(JobStatus), default=JobStatus.PENDING)
|
||||
|
||||
input_files = Column(JSON)
|
||||
sequence_type = Column(String, default="nucl")
|
||||
scaf_suffix = Column(String, default=".fna")
|
||||
threads = Column(Integer, default=4)
|
||||
|
||||
result_url = Column(String, nullable=True)
|
||||
logs = Column(Text, nullable=True)
|
||||
error_message = Column(Text, nullable=True)
|
||||
|
||||
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
||||
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
|
||||
completed_at = Column(DateTime(timezone=True), nullable=True)
|
||||
Reference in New Issue
Block a user