af_job.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from sqlalchemy import Column, Integer, String, Text, JSON
  2. from app.models.database import BaseModel
  3. class AirflowJob(BaseModel):
  4. __tablename__ = "airflow_job"
  5. id = Column(Integer, primary_key=True, index=True)
  6. name = Column(Text)
  7. job_type = Column(Integer) # 任务类型:可取 1=单作业任务 ,2=多作业任务
  8. tasks = Column(JSON) # 任务列表
  9. dependence = Column(JSON) # 作业间的依赖
  10. # 任务执行CRON
  11. cron = Column(Text, nullable=False)
  12. # 任务描述
  13. desc = Column(Text, nullable=False)
  14. # 路由策略: 对应 KubernetesPodOperator schedulername =》通过pod传给k8s集群(schedulername)
  15. route_strategy = Column(String(32))
  16. # 阻塞处理策略
  17. block_strategy = Column(String(32))
  18. # 任务超时时间, 单位分钟:对应 airflow dag的 dagrun_timeout参数
  19. executor_timeout = Column(Integer, nullable=False)
  20. # 失败重试次数
  21. executor_fail_retry_count = Column(Integer, nullable=False)
  22. # 调度状态: 0-停止 1-运行
  23. trigger_status = Column(Integer, nullable=False)
  24. # 上次调度时间
  25. trigger_last_time = Column(Integer)
  26. # 下次调度时间
  27. trigger_next_time = Column(Integer)
  28. create_time = Column(Integer) # 创建时间
  29. update_time = Column(Integer) # 创建时间
  30. user_id = Column(Integer) # 创建者user id
  31. def __int__(self):
  32. pass