- 新增 Seg_Server_Docker 自包含部署内容,包含前后端、FastAPI、Celery、PostgreSQL、Redis、MinIO、演示视频和 DICOM 数据。 - 保留 demo 数据以支持恢复演示出厂设置,排除 SAM 2.1 .pt 权重并在 README 中补充下载命令。 - 补充 GPU 部署、backend/worker 镜像复用、frpc/frps + NPM 公网域名反代部署说明。 - 在 .env/.env.example 中用 # XXXX 标注局域网和公网域名部署需要修改的配置项。 - 添加部署分支 .gitignore,忽略本地模型权重、构建产物、缓存和日志。
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
"""Celery task definitions."""
|
|
|
|
import logging
|
|
|
|
from celery_app import celery_app
|
|
from database import SessionLocal
|
|
from services.media_task_runner import run_parse_media_task
|
|
from services.propagation_task_runner import run_propagate_project_task
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@celery_app.task(name="media.parse_project")
|
|
def parse_project_media(task_id: int) -> dict:
|
|
"""Run media parsing for one queued task."""
|
|
db = SessionLocal()
|
|
try:
|
|
return run_parse_media_task(db, task_id)
|
|
except Exception as exc: # noqa: BLE001
|
|
logger.exception("Parse media task failed: task_id=%s", task_id)
|
|
raise exc
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
@celery_app.task(name="ai.propagate_project")
|
|
def propagate_project_masks(task_id: int) -> dict:
|
|
"""Run SAM video propagation for one queued task."""
|
|
db = SessionLocal()
|
|
try:
|
|
return run_propagate_project_task(db, task_id)
|
|
except Exception as exc: # noqa: BLE001
|
|
logger.exception("Propagation task failed: task_id=%s", task_id)
|
|
raise exc
|
|
finally:
|
|
db.close()
|