- 新增 task_report 任务级聚合指标 task_metrics - 补充创建任务幂等与失败路径/冲突测试 - 将后端测试基线提升到 20 passed - 新增 edge-agent 初始化代码、启动脚本与打包脚本 - 新增 http_health_check、check_port、check_process、grep_log 执行器 - 补充 edge-agent 基础测试并提升基线到 10 passed - 同步更新 backend README 与当前进度总结
32 lines
896 B
Python
32 lines
896 B
Python
from __future__ import annotations
|
|
|
|
from sqlalchemy import select
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.models.task import Task
|
|
|
|
|
|
class TaskRepository:
|
|
def __init__(self, db: Session) -> None:
|
|
self.db = db
|
|
|
|
def add(self, task: Task) -> Task:
|
|
self.db.add(task)
|
|
self.db.commit()
|
|
self.db.refresh(task)
|
|
return task
|
|
|
|
def update(self, task: Task) -> Task:
|
|
self.db.add(task)
|
|
self.db.commit()
|
|
self.db.refresh(task)
|
|
return task
|
|
|
|
def get_by_task_id(self, task_id: str) -> Task | None:
|
|
statement = select(Task).where(Task.task_id == task_id)
|
|
return self.db.execute(statement).scalar_one_or_none()
|
|
|
|
def get_by_request_id(self, request_id: str) -> Task | None:
|
|
statement = select(Task).where(Task.request_id == request_id)
|
|
return self.db.execute(statement).scalar_one_or_none()
|